[613] | 1 | ECMFECS ;ALB/JAM-Event Capture Management - Event Code Screen Filer;27 Nov 00
|
---|
| 2 | ;;2.0; EVENT CAPTURE ;**25,33,47,55,65**;8 May 96
|
---|
| 3 | ;
|
---|
| 4 | FILE ;Used by the RPC broker to file EC Code Screens in file #720.3
|
---|
| 5 | ; Variables passed in
|
---|
| 6 | ; ECIEN - IEN of #720.3, if editing
|
---|
| 7 | ; ECL - Location
|
---|
| 8 | ; ECD - DSS Unit
|
---|
| 9 | ; ECC - Category
|
---|
| 10 | ; ECP - Procedure
|
---|
| 11 | ; ECST - Event code screen status
|
---|
| 12 | ; ECSYN - Synonym
|
---|
| 13 | ; ECVOL - Volume
|
---|
| 14 | ; ECAC - Associated Clinic
|
---|
| 15 | ; ECREAS - Reason indicator
|
---|
| 16 | ; ECRES0..n - array of reasons
|
---|
| 17 | ;
|
---|
| 18 | ; Variable return
|
---|
| 19 | ; ^TMP($J,"ECMSG",n)=Success or failure to file in #720.3^Message
|
---|
| 20 | ;
|
---|
| 21 | N ECCH,ECERR,ECX,ECY,ECFLG,ECR,ECI,X,Y,DIK,DIE
|
---|
| 22 | S ECERR=0 D CHKDT I ECERR Q
|
---|
| 23 | D VALDATA I ECERR Q
|
---|
| 24 | I ECIEN'="" S ECFLG=0,ECX=$G(^ECJ(ECIEN,0)),ECY=$P(ECX,U) D I ECERR Q
|
---|
| 25 | .I ECX="" D Q
|
---|
| 26 | ..S ECERR=1,^TMP($J,"ECMSG",1)="0^Event Code Screen Not on File" Q
|
---|
| 27 | .S ECL=$P(ECY,"-"),ECD=$P(ECY,"-",2),ECC=$P(ECY,"-",3),ECP=$P(ECY,"-",4)
|
---|
| 28 | .I ECST="A",$P(ECX,U,2)'="" S DA=ECIEN,DIE="^ECJ(",DR="1///@" D ^DIE Q
|
---|
| 29 | .I ECST="I",$P(ECX,U,2)="" S $P(^ECJ(ECIEN,0),U,2)=DT
|
---|
| 30 | S ECC=$G(ECC,0),ECCH=ECL_"-"_ECD_"-"_ECC_"-"_ECP
|
---|
| 31 | I '$P($G(^ECD(ECD,0)),U,11),ECC D Q
|
---|
| 32 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^DSS Unit/Category inconsistency" Q
|
---|
| 33 | I ECIEN="" D I ECERR Q
|
---|
| 34 | .I $D(^ECJ("B",ECCH)) D Q
|
---|
| 35 | ..S ECERR=1,^TMP($J,"ECMSG",1)="0^EC Screen Exist" Q
|
---|
| 36 | .D NEWIEN
|
---|
| 37 | S DA=ECIEN,DIK="^ECJ(",ECREAS=$S(ECREAS="Y":1,1:0) D IX^DIK
|
---|
| 38 | S ^ECJ("AP",ECL,ECD,ECC,ECP,ECIEN)="",^ECJ("APP",ECL,ECD,ECP,ECIEN)=""
|
---|
| 39 | S $P(^ECJ(ECIEN,"PRO"),U)=ECP,ECAC=$S($G(ECAC)'="":ECAC,1:"@")
|
---|
| 40 | S DR="53////"_$S($G(ECSYN)'="":ECSYN,1:"@")_";54////"_$G(ECVOL,1)
|
---|
| 41 | S DR=DR_";55////"_$G(ECAC)_";56////"_ECREAS,DIE="^ECJ(",DA=ECIEN
|
---|
| 42 | D ^DIE K DA,DR,DIE
|
---|
| 43 | I $D(DTOUT) D RECDEL S ^TMP($J,"ECMSG",1)="0^Record not Filed" Q
|
---|
| 44 | I ECREAS D
|
---|
| 45 | .K DIC,DA,DR,ECX S DIC="^ECL(",DIC(0)="L",DLAYGO=720.5,ECR=0
|
---|
| 46 | .F ECI=0:1 S ECX="ECRES"_ECI Q:'$D(@ECX) S ECR=(@ECX) D
|
---|
| 47 | ..Q:ECR="" I '$D(^ECR(ECR,0)) Q
|
---|
| 48 | ..I '$D(^ECL("AD",ECIEN,ECR)) S X=ECR,DIC("DR")=".02////"_ECIEN
|
---|
| 49 | ..K DD,DO,DLAYGO D FILE^DICN
|
---|
| 50 | S ^TMP($J,"ECMSG",1)="1^Record Filed"_U_ECIEN
|
---|
| 51 | Q
|
---|
| 52 | ;
|
---|
| 53 | VALDATA ;validate data
|
---|
| 54 | N ECRRX,ECRES
|
---|
| 55 | S DIC="^DIC(4,",DIC(0)="NX",X=ECL D ^DIC I Y=-1 D Q
|
---|
| 56 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid Location"
|
---|
| 57 | S DIC="^ECD(",DIC(0)="NX",X=ECD D ^DIC I Y=-1 D Q
|
---|
| 58 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid DSS Unit"
|
---|
| 59 | I ECC S DIC="^EC(726,",DIC(0)="NX",X=ECC D ^DIC I Y=-1 D Q
|
---|
| 60 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid Category"
|
---|
| 61 | I ECP'="" D I ECERR Q
|
---|
| 62 | .; ATG-1003-32110 : by VMP
|
---|
| 63 | .I ECP["ICPT" S ECRRX=$$CPT^ICPTCOD(+ECP) I +ECRRX>0 Q:$G(ECIEN) I $P(ECRRX,U,7) Q
|
---|
| 64 | .I ECP["EC",$D(^EC(725,+ECP,0)) Q
|
---|
| 65 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid Procedure"
|
---|
| 66 | I $G(ECAC)'="" D I ECERR Q
|
---|
| 67 | .D CHK^DIE(720.3,55,"E","`"_ECAC,.ECRRX) I ECRRX'=ECAC D Q
|
---|
| 68 | ..S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid Associated Clinic"
|
---|
| 69 | .S ECRES=$$CLNCK^SDUTL2(ECAC,0) I 'ECRES D S ECERR=1
|
---|
| 70 | ..S ^TMP($J,"ECMSG",1)=ECRES_" Clinic MUST be corrected before filing."
|
---|
| 71 | I $G(ECSYN)'="" D CHK^DIE(720.3,53,"E",ECSYN,.ECRRX) I ECRRX'=ECSYN D Q
|
---|
| 72 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid Synonym"
|
---|
| 73 | I "^N^Y^"'[U_ECREAS_U D Q
|
---|
| 74 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Invalid Reason Response"
|
---|
| 75 | Q
|
---|
| 76 | RECDEL ; Delete record
|
---|
| 77 | I ECFLG S DA=ECIEN,DIK="^ECJ(" D ^DIK K DA,DIK
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | NEWIEN ;Create new IEN in file #720.3
|
---|
| 81 | N DIC,DA,DD,DO
|
---|
| 82 | L +^ECJ(0)
|
---|
| 83 | S X=ECCH,DIC="^ECJ(",DIC(0)="L",DLAYGO=720.3 D FILE^DICN
|
---|
| 84 | L -^ECJ(0)
|
---|
| 85 | S ECIEN=+Y,$P(^ECJ(ECIEN,0),U,3)=DT,$P(^ECJ(ECIEN,"PRO"),U)=ECP
|
---|
| 86 | I ECST="I" S $P(^ECJ(ECIEN,0),U,2)=DT
|
---|
| 87 | Q
|
---|
| 88 | CHKDT ;Required Data Check
|
---|
| 89 | N I,C
|
---|
| 90 | S C=1
|
---|
| 91 | F I="ECL","ECD","ECC","ECP","ECREAS" D
|
---|
| 92 | .I $G(@I)="" S ^TMP($J,"ECMSG",C)="0^Key data missing "_I,C=C+1,ECERR=1
|
---|
| 93 | Q
|
---|
| 94 | REASON ;Used by the RPC broker to file EC Reasons in file #720.4
|
---|
| 95 | ; Variables passed in
|
---|
| 96 | ; ECIEN - IEN of #720.4, if editing
|
---|
| 97 | ; ECRES - Reason
|
---|
| 98 | ; ECST - Reason status
|
---|
| 99 | ;
|
---|
| 100 | ; Variable return
|
---|
| 101 | ; ^TMP($J,"ECMSG",n)=Success or failure to file in #720.4^Message
|
---|
| 102 | ;
|
---|
| 103 | N ECOST,ECERR,ECFLG,X,Y,DIC,DIE
|
---|
| 104 | S ECERR=0 I $G(ECRES)="" D I ECERR Q
|
---|
| 105 | .S ^TMP($J,"ECMSG",1)="0^Key data missing - Reason",ECERR=1
|
---|
| 106 | D CHK^DIE(720.4,.01,,ECRES,.ECRRX) I ECRRX="^" D Q
|
---|
| 107 | .S ^TMP($J,"ECMSG",1)="0^Invalid Reason",ECERR=1
|
---|
| 108 | S ECST=$G(ECST,"A")
|
---|
| 109 | I "^I^A^"'[U_ECST_U S ^TMP($J,"ECMSG",1)="0^Invalid Reason Status" Q
|
---|
| 110 | S ECST=$S(ECST="I":0,1:1),ECIEN=$G(ECIEN),ECFLG=1
|
---|
| 111 | I ECIEN'="" S ECFLG=0 I $G(^ECR(ECIEN,0))="" D I ECERR K ECST Q
|
---|
| 112 | .S ECERR=1,^TMP($J,"ECMSG",1)="0^Reason Not on File" Q
|
---|
| 113 | I ECIEN="" D I ECERR K ECST Q
|
---|
| 114 | .I $D(^ECR("B",ECRES)) S ECERR=1,^TMP($J,"ECMSG",1)="0^Reason Exist" Q
|
---|
| 115 | .K DIE,DR,DA
|
---|
| 116 | .L +^ECR(0)
|
---|
| 117 | .S X=ECRES,DIC="^ECR(",DIC(0)="L",DLAYGO=720.4 D FILE^DICN
|
---|
| 118 | .L -^ECR(0)
|
---|
| 119 | .S ECIEN=+Y
|
---|
| 120 | S ECOST=$P($G(^ECR(ECIEN,0)),U,2)
|
---|
| 121 | I ECST'=ECOST D
|
---|
| 122 | .S DIE=DIC,DA=ECIEN,DR=".02////"_ECST D ^DIE
|
---|
| 123 | S ^TMP($J,"ECMSG",1)="1^Reason Filed"_U_ECIEN K ECST
|
---|
| 124 | Q
|
---|