红色标记的hr都是顶级的module,每个路由节点都会引入hr这个module,所以这些嵌入的界面可以放在hr这个module下
angular.module(' hr.templateCache ').run(['$templateCache', function ($templateCache) {
$templateCache.put( 'presc-create-modal.html', "<div hr-draggable class=\"create-presc\" modal=\"modalShow\" options=\"prescModalOpts\" ng-controller=\"PrescCreateModalController\">\n <header class=\"modal-header\">\n <button type=\"button\" class=\"close\" ng-click=\"closePrescCreateModal()\">×</button>\n <h5>生成处方</h5>\n </header>\n <div class=\"mg5505\">\n <div class=\"form-horizontal presc-attr\">\n <!--处方类型-->\n <div class=\"control-group label-four drug-type\">\n <label class=\"control-label\">处方类型:</label>\n <div class=\"controls\">\n <span ng-repeat=\"prescTypeDict in prescTypeDictList\"\n ng-if=\"isPrescTypeShow(prescTypeDict.codeName)\">\n <label class=\"checkbox inline\">\n <input type=\"checkbox\" value=\"{{prescTypeDict.codeName}}\" ng-click=\"applyCheckEvent()\"\n ng-disabled=\"isRejectOption(prescTypeDict)\" ng-checked=\"isPrescAttrChecked(prescTypeDict.codeName)\"\n name=\"prescAttr\">{{prescTypeDict.codeName}}\n </label>\n </span>\n </div>\n </div>\n <!--药房-->\n <div class=\"control-group label-two drug-room\" ng-show=\"clinicInfo.groupOrder != 2\">\n <label class=\"control-label\">药房</label>\n <div class=\"controls\">\n <select ui-select2 id=\"deptInfo\"\n enter-loop=\"1\" enterindex=\"3\"\n ng-model=\"performDeptIdPrescCreate\" ng-change=\"changePerformDept(performDeptIdPrescCreate)\">\n <option ng-repeat=\"dept in departmentWestDispensary\"\n code=\"{{dept.deptCode}}\"\n value=\"{{dept.deptCode}}\">{{dept.deptName}}\n </option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"body-content border-line-top-left-right\" ng-grid=\"prescOrdersGrid\"></div>\n </div>\n <div class=\"modal-footer btn-right\">\n <button class=\"btn btn-primary\" ng-click=\"createPresc()\">生成</button>\n <button class=\"btn btn-default\" ng-click=\"closePrescCreateModal()\">关闭</button>\n </div>\n</div>" );
}]);
angular.module( ' hr ').controller('PrescCreateModalController', ['$scope', '$http', '$timeout', 'hrDialog', 'HrDrugBillingAttr', 'hrProgress' ,
function ($scope, $http, $timeout, hrDialog, HrDrugBillingAttr, hrProgress) {
$scope.modalShow = true ;
// 医嘱生成处方药房
$scope.performDeptIdPrescCreate = null ;
// 可生成处方医嘱List(药疗,不摆药,已执行)
$scope.ordersDrugWestListPrescCreate = [];
// 页面显示可生成处方医嘱List
$scope.orderDetailListPrescCreate = [];
// 医嘱最后发药信息List
$scope.drugPrescDetailList = [];
$scope.prescModalOpts = {
dialogClass: "modal create-presc-modal" ,
backdropFade: false ,
dialogFade: false ,
keyboard: true ,
backdrop: true ,
backdropClick: false
};
$scope.closePrescCreateModal = function () {
$scope.modalShow = false ;
$scope.modal.close();
$timeout( function () {
$scope.$destroy();
})
};
function initPrescCreate() {
$scope.ordersDrugWestListPrescCreate = angular.copy($scope.ordersDrugWestOtherList.filter( function (doctorOrder) {
return isOrderForPrescCreate(doctorOrder);
}));
for ( var i = 0; i < $scope.ordersDrugWestListPrescCreate.length; i++ ) {
var orderDetail = convertDrugWestToDetail($scope.ordersDrugWestListPrescCreate[i]);
orderDetail.packageUnits = $scope.ordersDrugWestListPrescCreate[i].drugOrderDetail.packageUnits;
orderDetail.totalAmount = null ;
orderDetail.days = null ;
$scope.orderDetailListPrescCreate.push(orderDetail);
}
$scope.performDeptIdPrescCreate = getDefaultDispensary($scope.departmentWestDispensary, $scope.defaultWestDispensary);
setOrderDetailShow();
}
function getOrderFilterShow(rowIndex) {
if (rowIndex > 0 ) {
var orderDetail = $scope.orderDetailListPrescCreate[rowIndex];
var orderDetailPre = $scope.orderDetailListPrescCreate[rowIndex - 1 ];
var orderClass = orderDetail.orderClass;
var orderClassPre = orderDetailPre.orderClass;
if (orderClass === orderClassPre && orderDetail.groupNo === orderDetailPre.groupNo) {
return false ;
}
}
return true ;
}
function getOrderTxtExtendDrugWestShow(rowIndex) {
var orderDetailList = $scope.orderDetailListPrescCreate;
if (orderDetailList.length <= rowIndex) {
return true ;
}
var totalLen = orderDetailList.length - 1 ;
var pre = 0 ;
var next = 0 ;
if (rowIndex === totalLen) {
next = rowIndex;
} else {
next = rowIndex + 1 ;
}
if (rowIndex > 0 ) {
pre = rowIndex - 1 ;
}
var currentGroupNo = orderDetailList[rowIndex].groupNo;
var preGroupNo = orderDetailList[pre].groupNo;
var nextGroupNo = orderDetailList[next].groupNo;
if (rowIndex === 0 ) {
if (next > rowIndex && currentGroupNo === nextGroupNo) {
return true ;
}
} else if (rowIndex === totalLen) {
if (pre < rowIndex && currentGroupNo === preGroupNo) {
return false ;
}
} else {
if (currentGroupNo === preGroupNo) {
if (currentGroupNo === nextGroupNo) {
return false ;
} else {
return false ;
}
} else {
if (currentGroupNo === nextGroupNo) {
return true ;
} else {
return true ;
}
}
}
return true ;
}
$scope.changePerformDept = function (performDeptIdPrescCreate){
angular.forEach($scope.ordersDrugWestListPrescCreate, function (item){
item.performDeptId = performDeptIdPrescCreate;
})
};
function setOrderDetailShow() {
$scope.orderDetailListPrescCreate.forEach( function (item, index) {
item.detailShow = getOrderFilterShow(index);
item.orderTxtExtendShow = getOrderTxtExtendDrugWestShow(index);
item.orderStatusCodeName = $scope.getOrderStatusByCode(item, "order" );
item.firmId = $scope.getDrugFirmIdByOrderId(item.orderId);
});
}
function isOrderForPrescCreate(doctorOrder) {
if (doctorOrder.orderClass === orderClassEnum.orderDrugWest && doctorOrder.drugBillingAttr === HrDrugBillingAttr.NONE && doctorOrder.orderStatus === orderStatusEnum.EXECUTE) {
var index = $scope.getSelectedRowNumOther(doctorOrder.orderId);
if (index !== -1) { // 停止医嘱 护士站未回写doctorOrders状态 需要检查performStatus
if ($scope.orderDetailOtherList[index].performStatus === orderStatusEnum.EXECUTE) {
return true ;
}
}
}
return false ;
}
function getDrugPrescDetailByOrderId(orderId) {
var filter = $scope.drugPrescDetailList.filter( function (item) {
return item.itemNo === orderId;
});
if (filter.length > 0 ) {
return filter[0 ];
}
return null ;
}
function calculateDays(drugOrderDetail,orderDetail) {
/* var drugPrescDetail = getDrugPrescDetailByOrderId(drugOrderDetail.orderId);
if (drugPrescDetail == null) {
return null;
} */
var amountPerPackage = drugOrderDetail.amountPerPackage || 0; // 包装数量
var dosage = drugOrderDetail.dosage || 0; // 药品默认一次使用剂量 0.25
var usageUnits = drugOrderDetail.usageUnits || ""; // 使用单位
var dosePerUnit = drugOrderDetail.dosePerUnit || 0; // 最小单位剂量 0.25
var doseUnits = drugOrderDetail.doseUnits || ""; // 剂量单位 mg
var units = drugOrderDetail.units || ""; // 单位 片
var freqCounter = drugOrderDetail.freqCounter || 0; // 默认频率次数 3
var freqInterval = drugOrderDetail.freqInterval || 0; // 默认频率间隔 1
var freqIntervalUnit = drugOrderDetail.freqIntervalUnit || ""; // 默认频率间隔单位 日
var totalAmount = drugOrderDetail.quantity || 0; // 数量
var dosageForUnits = 0 ;
var countPerDay = 0 ;
var countPerWeek = 0 ;
if (usageUnits !== units) {
dosageForUnits = dosage / dosePerUnit;
} else {
dosageForUnits = dosage;
}
if (freqIntervalUnit === "小时" ) {
countPerDay = (24 / freqInterval) * freqCounter;
} else if (freqIntervalUnit === "分钟" || freqIntervalUnit === "分" ) {
countPerDay = (24 * 60 / freqInterval) * freqCounter;
} else if (freqIntervalUnit === "日" ) {
countPerDay = (freqCounter / freqInterval);
} else if (freqIntervalUnit === "周" ) {
countPerWeek = freqCounter / freqInterval;
}
var days = orderDetail.days;
if (freqIntervalUnit === "周" ) {
orderDetail.totalAmount = Math.ceil(Math.ceil(days / 7) * countPerWeek * dosageForUnits / amountPerPackage);
} else {
orderDetail.totalAmount = Math.ceil(days * countPerDay * dosageForUnits / amountPerPackage);
}
orderDetail.totalAmount = isNaN(orderDetail.totalAmount==0? null :orderDetail.totalAmount)== true ? null :orderDetail.totalAmount;
}
// 查询最后发药天数
function getLastPerformDays(callback) {
var orderIdList = $scope.ordersDrugWestListPrescCreate.map( function (item) {
return item.orderId;
});
var successCallback = function (data) {
$scope.drugPrescDetailList = data;
callback();
};
var errorCallback = function (data) {
hrDialog.dialog(hrDialog.typeEnum.WARN, {
message: "查询发药信息失败!" ,
detail: data.message
});
callback();
};
HrUtils.httpRequest($http, Path.getUri( "api/inp-orders/presc-last-perform-days" ), successCallback, errorCallback, hrDialog, HrUtils.httpMethod.POST, orderIdList);
}
// 小包装大包装的转换
function getPackageUnits(index) {
var drugOrderDetail = $scope.ordersDrugWestListPrescCreate[index].drugOrderDetail;
var successCallback = function (data) {
data = data.filter( function (item) {
return item.amountPerPackage > 1 ;
});
if (data.length > 0 ) {
drugOrderDetail.packageSpec = data[0 ].packageSpec;
drugOrderDetail.packageUnits = data[0 ].packageUnits;
drugOrderDetail.amountPerPackage = data[0 ].amountPerPackage;
$scope.orderDetailListPrescCreate[index].packageUnits = data[0 ].packageUnits;
$scope.orderDetailListPrescCreate[index].orderTxt = $scope.getOrderTxtDrugWest(drugOrderDetail);
}
calculateDays(drugOrderDetail,$scope.orderDetailListPrescCreate[index]);
if (index < $scope.ordersDrugWestListPrescCreate.length - 1 ) {
getPackageUnits( ++ index);
}
};
if (drugOrderDetail.amountPerPackage === 1 ) {
HrUtils.httpRequest($http, Path.getUri( "api/drug-info-list/special-drug-price-list"), successCallback, null , hrDialog, HrUtils.httpMethod.POST, drugOrderDetail);
} else {
calculateDays(drugOrderDetail,$scope.orderDetailListPrescCreate[index]);
if (index < $scope.ordersDrugWestListPrescCreate.length - 1 ) {
getPackageUnits( ++ index);
}
}
}
function convertDrugWestToDetail(inpOrders, prescSpecType) {
var orderDetail = {};
var drugOrderDetailTemp = inpOrders.drugOrderDetail;
if (drugOrderDetailTemp.deleteStatus !== 1 ) {
orderDetail = $scope.getOrderDetailDrug(inpOrders, drugOrderDetailTemp, true , 0 , prescSpecType);
}
return orderDetail;
}
function getDrugPrescAttrDetail(data){
if (Strings.isNullOrEmpty(data)){
return "普通" ;
}
var prescAttr = "" ;
switch (data.toxiCode) {
case "2" :
prescAttr = "精1" ;
break ;
case "7" :
prescAttr = "精2" ;
break ;
case "6" :
prescAttr = "毒" ;
break ;
case "5" :
prescAttr = "麻" ;
break ;
default :
prescAttr = "普通" ;
}
return prescAttr;
}
// 获取药品属性
function getDrugPrescAttr(ordersDrugWestListPresc, index, callback){
var doctorOrders = ordersDrugWestListPresc[index];
var successCallback = function (data) {
doctorOrders.prescAttr = getDrugPrescAttrDetail(data);
if (index < ordersDrugWestListPresc.length - 1 ) {
getDrugPrescAttr(ordersDrugWestListPresc, ++ index, callback);
} else {
callback();
}
};
HrUtils.httpRequest($http, Path.getUri( "api/inp-orders/get-drug-prescAttr?drugCode=" + doctorOrders.drugOrderDetail.drugCode), successCallback, null , hrDialog, HrUtils.httpMethod.POST, null );
}
// 生成orderDrugInfo
function getOrderDrugInfo(doctorOrders, drugOrderDetail, callback){
var orderDrugInfo = new OrderDrugInfo();
orderDrugInfo.operationStatus = doctorOrders.operationStatus; //
orderDrugInfo.administration = drugOrderDetail.administration;
orderDrugInfo.amountPerPackage = drugOrderDetail.amountPerPackage;
orderDrugInfo.amountPerPackage = drugOrderDetail.amountPerPackage;
orderDrugInfo.babyNo = doctorOrders.babyNo;
orderDrugInfo.billingAttr = doctorOrders.billingAttr;
orderDrugInfo.charge = drugOrderDetail.totalAmount * drugOrderDetail.price;
orderDrugInfo.costs = drugOrderDetail.totalAmount * drugOrderDetail.price;
orderDrugInfo.days = drugOrderDetail.days;
orderDrugInfo.dosage = drugOrderDetail.dosage;
orderDrugInfo.dosePerUnit = drugOrderDetail.dosePerUnit;
orderDrugInfo.doseUnits = drugOrderDetail.doseUnits;
orderDrugInfo.drugCode = drugOrderDetail.drugCode;
orderDrugInfo.drugName = drugOrderDetail.drugName;
orderDrugInfo.drugSpec = drugOrderDetail.drugSpec;
orderDrugInfo.drugTradeCode = drugOrderDetail.drugTradeCode;
orderDrugInfo.drugTradeName = drugOrderDetail.drugTradeName;
orderDrugInfo.duration = drugOrderDetail.duration;
orderDrugInfo.durationUnits = drugOrderDetail.durationUnits;
orderDrugInfo.encounterNo = doctorOrders.encounterNo;
orderDrugInfo.firmId = drugOrderDetail.firmId;
orderDrugInfo.focusSelfPay = doctorOrders.focusSelfPay;
orderDrugInfo.freqCounter = drugOrderDetail.freqCounter;
orderDrugInfo.freqInterval = drugOrderDetail.freqInterval;
orderDrugInfo.freqIntervalUnit = drugOrderDetail.freqIntervalUnit;
orderDrugInfo.frequency = drugOrderDetail.frequency;
orderDrugInfo.groupGraph = doctorOrders.groupGraph;
orderDrugInfo.isGroup = doctorOrders.isGroup; //
orderDrugInfo.memo = doctorOrders.memo;
orderDrugInfo.menstruumIndicator = drugOrderDetail.menstruumIndicator;
orderDrugInfo.packageSpec = drugOrderDetail.packageSpec;
orderDrugInfo.packageUnits = drugOrderDetail.packageUnits;
orderDrugInfo.performDeptId = doctorOrders.performDeptId;
orderDrugInfo.prescAttr = doctorOrders.prescAttr;
orderDrugInfo.price = drugOrderDetail.price;
orderDrugInfo.stIndicator = drugOrderDetail.stIndicator;
orderDrugInfo.totalAmount = drugOrderDetail.totalAmount;
orderDrugInfo.units = drugOrderDetail.units;
orderDrugInfo.usageUnits = drugOrderDetail.usageUnits;
orderDrugInfo.userDescription = drugOrderDetail.userDescription;
orderDrugInfo.visitNo = doctorOrders.visitNo;
callback(orderDrugInfo);
}
// 校验是否数量为空
function checkTotalAmountOrDays(orderDetailListPresc, ordersDrugWestListPresc, callback){
var filter = orderDetailListPresc.filter( function (item){
if (Strings.isNullOrEmpty(item.totalAmount) || item.totalAmount == 0 || Strings.isNullOrEmpty(item.days) || item.days == 0 ){
return item;
}
});
if (filter.length > 0 ){
for ( var i=0; i< ordersDrugWestListPresc.length;){
if (ordersDrugWestListPresc[i].orderId == filter[0 ].orderId){
hrDialog.dialog(hrDialog.typeEnum.WARN, {message: "请检查" + ordersDrugWestListPresc[i].drugOrderDetail.drugName + "药品天数或者数量" })
.close( function (){
});
return false ;
}
++ i;
}
} else {
callback();
}
}
/* function checkDrugFirm(orderDrugInfo, callback) {
var queryInfo = {
"drugCode": orderDrugInfo.drugCode,
"drugTradeName": "",
"deptCode": $scope.performDeptIdPrescCreate,
"chargeType": $scope.patientInfo.chargeType,
"constrainedDoctorLevel": $scope.doctorInfo.constrainedDoctorLevel,
"packageUnitsFlag": 1,
"displayFlag": true
};
var drugInfoSuccessCallback = function (data) {
if (data && data.length > 0) {
var list = data.filter(function (item) {
if (item.drugCode === orderDrugInfo.drugCode && item.drugSpec === orderDrugInfo.drugSpec && item.firmId === orderDrugInfo.firmId && item.packageSpec === orderDrugInfo.packageSpec) {
return true;
}
});
if (list.length > 0) {
orderDrugInfo.price = data[0].price;
callback(orderDrugInfo);
} else {
hrDialog.dialog(hrDialog.typeEnum.WARN, {message: orderDrugInfo.drugName + "(" + orderDrugInfo.packageSpec + ")" + "'药品不可供!"});
}
} else {
hrDialog.dialog(hrDialog.typeEnum.WARN, {message: orderDrugInfo.drugName + "(" + orderDrugInfo.packageSpec + ")" + "'药品不可供!"});
}
};
HrUtils.httpRequest($http, Path.getUri("api/drug-name-dict/drug-trade-price-info"), drugInfoSuccessCallback, null, hrDialog, HrUtils.httpMethod.POST, queryInfo);
} */
// 检验是否选中要生成处方的医嘱
function checkOrdersQuantity(callback) {
var orderDetailListPresc = [];
var ordersDrugWestListPresc = [];
angular.forEach($scope.orderDetailListPrescCreate, function (item,index){
if (item.checked){
orderDetailListPresc.push(item);
ordersDrugWestListPresc.push($scope.ordersDrugWestListPrescCreate[index]);
}
});
if (orderDetailListPresc.length == 0 ){
hrDialog.dialog(hrDialog.typeEnum.WARN, {message: "请选择要生成的处方的医嘱!" });
return false ;
} else {
callback(orderDetailListPresc, ordersDrugWestListPresc);
}
}
function getPrescAttr() {
var prescAttrList = [];
var checkBoxs = $('input[name="prescAttr"]' );
for ( var i = 0; i < checkBoxs.length; i++ ) {
var checkBox = checkBoxs.get(i);
if (checkBox.checked && ! angular.equals(checkBox.value, prescAttrEnum.PT)) {
prescAttrList.push(checkBox.value)
}
}
var prescAttr = prescAttrList.join(";" );
if (angular.equals(prescAttr, "" )) {
prescAttr = prescAttrEnum.PT;
}
return prescAttr;
}
$scope.columnDefsPrescOrders = [
{
field: '', displayName: '选择', width: "5%", cellClass: "text-center", cellTemplate: '' +
'<div class="ngCellText">\n <input type="checkbox" ng-model="row.entity.checked" ng-show="row.entity.groupSubNo == 1" ng-true-value="1" ng-false-value="0" ng-click="preventCheck(row.rowIndex)"/>\n</div>'
},
{
field: 'startDateTime', displayName: '下达时间', width: "9%", cellClass: "text-center", cellTemplate: '' +
'<div class="ngCellText" ng-show="row.entity.detailShow">{{::getOrderDateTime(row.getProperty(col.field))}}</div>'
},
{
field: 'repeatIndicator', displayName: '长/临', width: "5%", cellTemplate: '' +
'<div class="ngCellText" ng-show="row.entity.detailShow">{{::getOrderRepeatIndicator(row.getProperty(col.field))}}</div>'
},
{
field: 'days' ,
displayName: '天数' ,
width: '5%' ,
cellClass: "text-center" ,
cellTemplate: '' +
' <div class="input-append">\n <input class="input-mini drug-amount-presc text-right" type="text" ng-model="row.entity.days" ng-change="changeOrdersDays(row.rowIndex)"\n number-only-by-condition number-type="+" decimal-type="integer"/>\n </div>\n'
},
{
field: 'totalAmount' ,
displayName: '数量' ,
width: "11%" ,
cellTemplate: '' +
' <div class="input-append">\n <input class="input-mini drug-amount-presc text-right" type="text" ng-model="row.entity.totalAmount" ng-disabled="true"/>\n <span class="add-on">{{row.entity.packageUnits}}</span>\n </div>\n'
},
{
field: 'orderTxt', displayName: '医嘱', cellTemplate: '' +
'<div class="ngCellText" title="{{::row.entity.firmId}}"> ' +
'<span ng-bind-html="deliberatelyTrustDangerousSnippet(row.getProperty(col.field))"></span> ' +
'<span class="drug-order-detail-flag">{{::row.entity.groupGraph}}</span> ' +
'<span ng-show="row.entity.orderTxtExtendShow" ng-bind-html="deliberatelyTrustDangerousSnippet(row.getProperty(\'orderTxtExtend\'))"></span>' +
'</div>'
},
{
field: 'doctor', displayName: '医师', width: '8%', cellTemplate: '' +
'<div class="ngCellText" ng-show="row.entity.detailShow">{{::row.getProperty(col.field)}}</div> '
},
{
field: 'orderStatus', displayName: '状态', width: '7.5%', cellTemplate: '' +
'<div class="ngCellText" title="{{::row.entity.orderStatusCodeName}}">' +
'{{::row.entity.orderStatusCodeName}}' +
'</div>'
}
/* ,
{
field: 'prescDate',
displayName: '最后发药时间',
width: '10%',
cellClass: "text-center",
cellTemplate: '' +
'<div class="ngCellText" title="{{::getOrderDateTime(row.getProperty(col.field))}}">' +
'{{::getOrderDateTime(row.getProperty(col.field))}}' +
'</div>'
} */
];
var rowTemplatePrescOrders = "<div ng-style=\"{ \'cursor\': row.cursor}\" ng-repeat=\"col in renderedColumns\"\n ng-class=\"col.colIndex()\" class=\"ngCell {{col.cellClass}} {{changeClassState(row.entity)}}\">\n <div class=\"ngVerticalBar\" ng-style=\"{height: rowHeight}\" ng-class=\"{ ngVerticalBarVisible: !$last }\"> </div>\n <div ng-cell></div>\n</div>" ;
$scope.prescOrdersGrid = {
data: 'orderDetailListPrescCreate' ,
columnDefs: 'columnDefsPrescOrders' ,
rowTemplate: rowTemplatePrescOrders,
enableColumnResize: false ,
multiSelect: false ,
enableSorting: false
};
$scope.preventCheck = function (index) {
var orderDetail = $scope.orderDetailListPrescCreate[index];
if (orderDetail.groupSubNo == 1 ){
angular.forEach($scope.orderDetailListPrescCreate, function (item){
if (item.groupNo == orderDetail.groupNo)
item.checked = orderDetail.checked;
})
}
event.stopPropagation(); // 已在rowTemplate 添加点击行选择
};
$scope.changeOrdersDays = function (index) {
var orderDetail = $scope.orderDetailListPrescCreate[index];
var days = orderDetail.days;
angular.forEach($scope.orderDetailListPrescCreate, function (item,index){
if (item.groupNo == orderDetail.groupNo){
item.days = days;
calculateDays($scope.ordersDrugWestListPrescCreate[index].drugOrderDetail,$scope.orderDetailListPrescCreate[index]);
}
});
};
$scope.isPrescTypeShow = function (codeName) {
if (codeName === prescAttrEnum.PT) {
return false ;
} else if (codeName === prescAttrEnum.ET && ! $scope.isChildAvaliable) {
return false ;
}
return true ;
};
$scope.isPrescAttrChecked = function (codeName) {
if (codeName === prescAttrEnum.YB && $scope.prescInsuranceSign === "1" ) {
return true ;
}
if ($scope.clinicInfo.clinicSource === clinicSourceEnum.ER_ORDER_INP && codeName === prescAttrEnum.JZ) {
return true ;
}
return false ;
};
$scope.isRejectOption = function (prescTypeDict) {
if (! $scope.prescTypeDictList) {
return false ;
}
if (prescTypeDict.codeName === prescAttrEnum.YB && $scope.prescInsuranceSign === "0" ) {
return true ; // 非医保患者,禁用医保
}
// 急诊红区 默认勾选禁用
if ($scope.clinicInfo.clinicSource === clinicSourceEnum.ER_ORDER_INP && prescTypeDict.codeName === prescAttrEnum.JZ) {
return true ;
}
var prescAttr = getPrescAttr();
if (angular.equals(prescAttr, prescAttrEnum.PT)) { // 普通处方,均可用
return false ;
}
var prescAttrList = $scope.prescTypeDictList.filter( function (e) {
return prescAttr.split(";").some( function (codeName) {
return e.codeName === codeName;
})
});
var isReject = prescAttrList.some( function (e) {
if (! e.ctrvalue1) {
return false ;
} else {
return e.ctrvalue1.split(";").some( function (rejectCodeId) {
return rejectCodeId === prescTypeDict.codeId;
});
}
});
var isReverseReject = prescAttrList.some( function (e) {
if (! prescTypeDict.ctrvalue1) {
return false ;
} else {
return prescTypeDict.ctrvalue1.split(";").some( function (rejectCodeId) {
return rejectCodeId === e.codeId;
})
}
});
return isReject || isReverseReject;
};
$scope.applyCheckEvent = function () {
if (! $scope.$$phase) {
$scope.$apply();
}
};
$scope.createPresc = function () {
// 检查是否选中
checkOrdersQuantity( function (orderDetailListPresc, ordersDrugWestListPresc){ // 选中的要生成的处方的医嘱
checkTotalAmountOrDays(orderDetailListPresc, ordersDrugWestListPresc, function (){
getDrugPrescAttr(ordersDrugWestListPresc, 0, function (){
var groupNo = ordersDrugWestListPresc[0 ].groupNo;
for ( var i=0; i< ordersDrugWestListPresc.length; ){
var doctorOrders = ordersDrugWestListPresc[i];
if (ordersDrugWestListPresc[i].groupNo == groupNo){
if (ordersDrugWestListPresc[i].groupSubNo == 1 ){
doctorOrders.operationStatus = "1" ;
doctorOrders.isGroup = "0" ;
} else {
doctorOrders.operationStatus = "0" ;
doctorOrders.isGroup = "1" ;
}
} else {
groupNo = doctorOrders.groupNo;
doctorOrders.operationStatus = "1" ;
doctorOrders.isGroup = "0" ;
}
var drugOrderDetail = doctorOrders.drugOrderDetail;
drugOrderDetail.totalAmount = orderDetailListPresc[i].totalAmount;
drugOrderDetail.days = orderDetailListPresc[i].days;
// 封装new InpOrderDrugInfo();
getOrderDrugInfo(doctorOrders, drugOrderDetail, function (orderDrugInfo){
$scope.addDrugInfoDetailForOrder(orderDrugInfo);
i ++ ;
})
}
})
$scope.closePrescCreateModal();
});
})
};
( function () {
initPrescCreate();
getLastPerformDays( function () {
// getPackageUnits(0);
});
})();
}]);
angular.module( ' hr.service ').factory('PrescCreate', ['$templateCache', '$document', '$compile', '$rootScope', '$timeout' ,
function ($templateCache, $document, $compile, $rootScope, $timeout) {
/* *
* 打开modal
* @param scope 父级$scope
*/
function _openPrescCreateModal(scope) {
new PrescCreateModal(scope).open();
}
function PrescCreateModal(scope) {
this ._scope = scope;
this ._activeElement = null ;
this ._element = angular.element($templateCache.get('presc-create-modal.html' ));
}
PrescCreateModal.prototype.open = function () {
if (event) {
event.stopPropagation();
event.preventDefault();
}
this ._activeElement = $(document.activeElement);
this ._activeElement.blur();
var scope = this ._scope.$ new ();
scope.modal = this ;
$document.find( 'body').append( this ._element);
$compile( this ._element)(scope);
$timeout( function () {
Mousetrap.reset();
});
};
PrescCreateModal.prototype.close = function () {
this ._element.remove();
this ._activeElement.focus();
};
return {
openPrescCreateModal: _openPrescCreateModal
}
}
]);
使用方式:
var InpOrdersController = ["$scope", "$q", "$http", "$filter", "hrDialog", "$timeout", "PluginManager", "$window", "HrOrderStatus", "hrProgress", "HrDrugBillingAttr", "HrBillingAttr", " PrescCreate ", "MainTreatGroupVerify", "CpVariationCheck", "HrOrder", "$rootScope", "HrChargeType", "$debounce", function ($scope, $q, $http, $filter, hrDialog, $timeout, PluginManager, $window, HrOrderStatus, hrProgress, HrDrugBillingAttr, HrBillingAttr, PrescCreate , MainTreatGroupVerify, CpVariationCheck, HrOrder, $rootScope, HrChargeType, $debounce) {
// 生成处方调用
$scope.openCreatePrescModal = function () {
if ($scope.operButtonDisabled.create) {
return false ;
}
findPerformOrders( function () {
PrescCreate .openPrescCreateModal($scope);
});
};
}];
因为绑定InpOrdersControllr的module注入了hr所以在InpOrdersController可以注入hr下的PrescCreate
查看更多关于angular 一个界面调用另一个界面的方式1的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did222739