| 1 | ORY142 ; SLC/MKB - inits for ED pre-patch OR*3*142 ;7/3/02  13:57
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**142**;Dec 17, 1997
 | 
|---|
| 3 |  ;DBIA reference section
 | 
|---|
| 4 |  ;2263 - XPAR
 | 
|---|
| 5 |  ;2058 - ^DIC(9.4,"C"
 | 
|---|
| 6 |  ;10013- DIK
 | 
|---|
| 7 |  ;10014- DIU2
 | 
|---|
| 8 |  ;10112- VASITE
 | 
|---|
| 9 |  ;10103- XLFDT
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | PRE ; -- preinit
 | 
|---|
| 12 |  I '$O(^ORD(101.41,"AB","OR GTX EVENT",0)) D  ;1st install
 | 
|---|
| 13 |  . N DIU ;remove old 100.5, 100.6 DD's
 | 
|---|
| 14 |  . F DIU="^ORYX(""ORTO"",","^ORYX(""ORPAR""," S DIU(0)="DST" D EN^DIU2
 | 
|---|
| 15 |  Q
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | DLGSEND(X)      ; -- Return true if the order dialog should be sent
 | 
|---|
| 18 |  I X="OR GTX EVENT" Q 1
 | 
|---|
| 19 |  I X="OR GXMOVE EVENT" Q 1
 | 
|---|
| 20 |  Q 0
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | DCSEND(X)       ; -- Return true if order reason should be sent
 | 
|---|
| 23 |  I X="ORDEATH" Q 1
 | 
|---|
| 24 |  I X="OROR" Q 1
 | 
|---|
| 25 |  I X="ORPASS" Q 1
 | 
|---|
| 26 |  I X="ORASIH" Q 1
 | 
|---|
| 27 |  Q 0
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | PRMSEND(X)      ; -- Return true if parameter definition should be sent
 | 
|---|
| 30 |  I X="ORWDX WRITE ORDERS EVENT LIST" Q 1
 | 
|---|
| 31 |  I X="OREVNT DEFAULT" Q 1
 | 
|---|
| 32 |  Q 0
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | POST ; -- postinit to convert old DC parameters to file #100.6
 | 
|---|
| 35 |  ;    Creates a set of rules for [primary] division
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  Q:$O(^ORD(100.6,0))  ;not 1st install
 | 
|---|
| 38 |  N ORI,ORADMIT,ORDIS,ORTRANS,ORSPEC,ORDEATH,OROR,ORPASS,ORASIH,ORPARM,ORNOW,ORDIV,ORPKG,DIK,ORGLOB,I
 | 
|---|
| 39 |  F ORI="ORADMIT","ORDIS","ORTRANS","ORSPEC","ORDEATH","OROR","ORPASS","ORASIH" S @ORI=+$O(^ORD(100.03,"C",ORI,0))
 | 
|---|
| 40 |  D GETLST^XPAR(.ORPARM,"ALL","OR DC ON SPEC CHANGE")
 | 
|---|
| 41 |  S ORPARM("T")=$$GET^XPAR("ALL","ORPF DC OF GENERIC ORDERS")
 | 
|---|
| 42 |  S ORPARM("A")=$$GET^XPAR("ALL","OR DC GEN ORD ON ADMISSION")
 | 
|---|
| 43 |  S ORI=0,ORNOW=+$$NOW^XLFDT,ORDIV=+$$SITE^VASITE Q:ORDIV<1
 | 
|---|
| 44 | P1 ; -- ADMISSION rule
 | 
|---|
| 45 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="ADMISSION^A^"_ORDIV_U_ORADMIT_"^ADMISSION"
 | 
|---|
| 46 |  D MVTYPES(ORI,"8^9^15^18^28^29^30^36^39")
 | 
|---|
| 47 |  S ORPKG=1,ORPKG(1)=+$O(^DIC(9.4,"C","OR",0))_"^1" D PKGS(ORI,.ORPKG)
 | 
|---|
| 48 |  I ORPARM("A")<1 S ^ORD(100.6,ORI,1)=ORNOW ;inactive
 | 
|---|
| 49 |  E  S ^ORD(100.6,ORI,2,0)="^100.61DA^1^1",^(1,0)=ORNOW
 | 
|---|
| 50 | P2 ; -- SPECIALTY CHANGE rule
 | 
|---|
| 51 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="SPECIALTY CHANGE^S^"_ORDIV_U_ORSPEC_"^SPECIALTY CHANGE"
 | 
|---|
| 52 |  D MVTYPES(ORI,"20"),PKGS(ORI,.ORPARM)
 | 
|---|
| 53 |  I ORPARM<1 S ^ORD(100.6,ORI,1)=ORNOW ;inactive
 | 
|---|
| 54 |  E  S ^ORD(100.6,ORI,2,0)="^100.61DA^1^1",^(1,0)=ORNOW
 | 
|---|
| 55 | P3 ; -- WARD TRANSFER rule
 | 
|---|
| 56 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="WARD TRANSFER^T^"_ORDIV_U_ORTRANS_"^WARD TRANSFER"
 | 
|---|
| 57 |  D MVTYPES(ORI,"4")
 | 
|---|
| 58 |  S ORPKG=1,ORPKG(1)=+$O(^DIC(9.4,"C","OR",0))_"^1" D PKGS(ORI,.ORPKG)
 | 
|---|
| 59 |  I ORPARM("T")<1 S ^ORD(100.6,ORI,1)=ORNOW ;inactive
 | 
|---|
| 60 |  E  S ^ORD(100.6,ORI,2,0)="^100.61DA^1^1",^(1,0)=ORNOW
 | 
|---|
| 61 | P4 ; -- DISCHARGE rule
 | 
|---|
| 62 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="DISCHARGE^D^"_ORDIV_U_ORDIS_"^DISCHARGE"
 | 
|---|
| 63 |  D MVTYPES(ORI,"10^11^16^17^21^27^31^32^33^34^35^37^42^46^47")
 | 
|---|
| 64 |  F I="1^OR","2^FH" S ORPKG(+I)=+$O(^DIC(9.4,"C",$P(I,U,2),0))_"^1"
 | 
|---|
| 65 |  S ORPKG=2 D PKGS(ORI,.ORPKG)
 | 
|---|
| 66 |  S ^ORD(100.6,ORI,2,0)="^100.61DA^1^1",^(1,0)=ORNOW ;active
 | 
|---|
| 67 | P5 ; -- DEATH rule
 | 
|---|
| 68 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="DEATH^D^"_ORDIV_U_ORDEATH_"^DEATH"
 | 
|---|
| 69 |  S ORPKG=4 F I="1^OR","2^FH","3^GMRC","4^RA" S ORPKG(+I)=+$O(^DIC(9.4,"C",$P(I,U,2),0))_"^1"
 | 
|---|
| 70 |  D PKGS(ORI,.ORPKG),MVTYPES(ORI,"12^38")
 | 
|---|
| 71 |  S ^ORD(100.6,ORI,2,0)="^100.61DA^1^1",^(1,0)=ORNOW ;active
 | 
|---|
| 72 |  ; ** Create the following but leave inactive for now:
 | 
|---|
| 73 | P6 ; -- OR rule
 | 
|---|
| 74 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="SURGERY^O^"_ORDIV_U_OROR_"^SURGERY"
 | 
|---|
| 75 |  S ORPKG=1,ORPKG(1)=+$O(^DIC(9.4,"C","OR",0))_"^1" D PKGS(ORI,.ORPKG)
 | 
|---|
| 76 |  S ^ORD(100.6,ORI,1)=ORNOW
 | 
|---|
| 77 | P7 ; -- ON PASS rule
 | 
|---|
| 78 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="ON PASS^T^"_ORDIV_U_ORPASS_"^ON PASS"
 | 
|---|
| 79 |  D MVTYPES(ORI,"1^2^3") S ^ORD(100.6,ORI,1)=ORNOW
 | 
|---|
| 80 | P8 ; -- FROM PASS rule
 | 
|---|
| 81 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="FROM PASS^T^"_ORDIV_U_ORPASS_"^FROM PASS"
 | 
|---|
| 82 |  D MVTYPES(ORI,"22^23^24^25^26") S ^ORD(100.6,ORI,1)=ORNOW
 | 
|---|
| 83 | P9 ; -- TO ASIH rule
 | 
|---|
| 84 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="TO ASIH^T^"_ORDIV_U_ORASIH_"^TO ASIH"
 | 
|---|
| 85 |  D MVTYPES(ORI,"13") S ^ORD(100.6,ORI,1)=ORNOW
 | 
|---|
| 86 | P10 ; -- FROM ASIH rule
 | 
|---|
| 87 |  S ORI=ORI+1,^ORD(100.6,ORI,0)="FROM ASIH^T^"_ORDIV_U_ORASIH_"^FROM ASIH"
 | 
|---|
| 88 |  D MVTYPES(ORI,"14") S ^ORD(100.6,ORI,1)=ORNOW
 | 
|---|
| 89 |  S $P(^ORD(100.6,0),U,3,4)=ORI_U_ORI
 | 
|---|
| 90 |  S DIK="^ORD(100.6," D IXALL^DIK ;set xrefs
 | 
|---|
| 91 |  ;Set edit history for new rules
 | 
|---|
| 92 |  S ORGLOB="^ORD(100.6,"
 | 
|---|
| 93 |  S ORI=0 F  S ORI=$O(^ORD(100.6,ORI)) Q:'+ORI  D AUDIT^OREV(ORI,"N")
 | 
|---|
| 94 |  Q
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 | MVTYPES(IEN,TYPES) ; -- save MAS Movement Types
 | 
|---|
| 97 |  N CNT,I S CNT=$L(TYPES,U)
 | 
|---|
| 98 |  S ^ORD(100.6,IEN,3,0)="^100.63P^"_CNT_U_CNT
 | 
|---|
| 99 |  F I=1:1:CNT S ^ORD(100.6,IEN,3,I,0)=+$P(TYPES,U,I)
 | 
|---|
| 100 |  Q
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 | PKGS(IEN,PKGS) ; -- save Included Packages
 | 
|---|
| 103 |  N CNT,I S CNT=+$G(PKGS)
 | 
|---|
| 104 |  S ^ORD(100.6,IEN,7,0)="^100.67P^"_CNT_U_CNT
 | 
|---|
| 105 |  F I=1:1:CNT S ^ORD(100.6,IEN,7,I,0)=+PKGS(I)
 | 
|---|
| 106 |  Q
 | 
|---|