- GMRC1004 ; IHS/CIA/MGH - PRE-INSTALL ROUTINE FOR GMRC PATCH 1004 ;06-Jun-2013 20:22;DU
- ;;3.0;CONSULT/REQUEST TRACKING;**1004**;NOV 04, 2004;Build 12
- ;
- ENV ;EP; environmen check
- N PATCH
- S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- ;
- ;
- S PATCH="GMRC*3.0*1003"
- I '$$PATCH(PATCH) D Q
- .W !,"You must first install "_PATCH_"." S XPDQUIT=2
- Q
- PATCH(X) ;return 1 if patch X was installed, X=aaaa*nn.nn*nnnn
- ;copy of code from XPDUTL but modified to handle 4 digit IHS patch numb
- Q:X'?1.4UN1"*"1.2N1"."1.2N.1(1"V",1"T").2N1"*"1.4N 0
- NEW NUM,I,J
- S I=$O(^DIC(9.4,"C",$P(X,"*"),0)) Q:'I 0
- S J=$O(^DIC(9.4,I,22,"B",$P(X,"*",2),0)),X=$P(X,"*",3) Q:'J 0
- ;check if patch is just a number
- Q:$O(^DIC(9.4,I,22,J,"PAH","B",X,0)) 1
- S NUM=$O(^DIC(9.4,I,22,J,"PAH","B",X_" SEQ"))
- Q (X=+NUM)
- ;
- PRE ;EP; beginning of pre install code
- Q
- ;
- POST ;EP; beginnig of post install code
- D REGNMSP^CIAURPC("GMRC","CIAV VUECENTRIC")
- D RESET
- D XREF
- Q
- RESET ;EP
- ;Loop through all the consult services and if set to S or R
- ;change S to O and R to null
- ;1 node 1st piece
- N I,DATA
- S I=0
- F S I=$O(^GMR(123.5,I)) Q:'+I D
- .S DATA=$G(^GMR(123.5,I,1))
- .I $P(DATA,U,1)="R" D UPDATE(I,"")
- .I $P(DATA,U,1)="S" D UPDATE(I,"O")
- Q
- UPDATE(IEN,VALUE) ;Update data
- N FDA
- S FDA(123.5,I_",",1.01)=VALUE
- D FILE^DIE("E","FDA")
- Q
- XREF ;Create a new type cross-reference
- N XREF,RESULT,MSG
- S XREF("TYPE")="R"
- S XREF("NAME")="APRV"
- S XREF("SHORT DESCR")="Problems by provider."
- S XREF("DESCR",1)="This cross-reference sorts consult requests that have associated problems"
- S XREF("DESCR",2)="by problem, provider and inverse date. This is used to find consults by provider"
- S XREF("DESCR",3)="for a particular problem"
- S XREF("USE")="SORTING ONLY"
- S XREF("EXECUTION")="R"
- S XREF("ACTIVITY")="IR"
- S XREF("VAL",1)=9999999.02
- S XREF("VAL",1,"SUBSCRIPT")=1
- S XREF("VAL",2)=10
- S XREF("VAL",2,"SUBSCRIPT")=2
- S XREF("VAL",3)=3
- S XREF("VAL",3,"SUBSCRIPT")=3
- S XREF("VAL",3,"XFORM FOR STORAGE")="S X=9999999-X"
- S XREF("FILE")=123
- S XREF("ROOT FILE")=123
- D CREIXN^DDMOD(.XREF,"SW",.RESULT,"","MSG")
- Q
- GMRC1004 ; IHS/CIA/MGH - PRE-INSTALL ROUTINE FOR GMRC PATCH 1004 ;06-Jun-2013 20:22;DU
- +1 ;;3.0;CONSULT/REQUEST TRACKING;**1004**;NOV 04, 2004;Build 12
- +2 ;
- ENV ;EP; environmen check
- +1 NEW PATCH
- +2 SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
- +3 ;
- +4 ;
- +5 SET PATCH="GMRC*3.0*1003"
- +6 IF '$$PATCH(PATCH)
- Begin DoDot:1
- +7 WRITE !,"You must first install "_PATCH_"."
- SET XPDQUIT=2
- End DoDot:1
- QUIT
- +8 QUIT
- PATCH(X) ;return 1 if patch X was installed, X=aaaa*nn.nn*nnnn
- +1 ;copy of code from XPDUTL but modified to handle 4 digit IHS patch numb
- +2 IF X'?1.4UN1"*"1.2N1"."1.2N.1(1"V",1"T").2N1"*"1.4N
- QUIT 0
- +3 NEW NUM,I,J
- +4 SET I=$ORDER(^DIC(9.4,"C",$PIECE(X,"*"),0))
- IF 'I
- QUIT 0
- +5 SET J=$ORDER(^DIC(9.4,I,22,"B",$PIECE(X,"*",2),0))
- SET X=$PIECE(X,"*",3)
- IF 'J
- QUIT 0
- +6 ;check if patch is just a number
- +7 IF $ORDER(^DIC(9.4,I,22,J,"PAH","B",X,0))
- QUIT 1
- +8 SET NUM=$ORDER(^DIC(9.4,I,22,J,"PAH","B",X_" SEQ"))
- +9 QUIT (X=+NUM)
- +10 ;
- PRE ;EP; beginning of pre install code
- +1 QUIT
- +2 ;
- POST ;EP; beginnig of post install code
- +1 DO REGNMSP^CIAURPC("GMRC","CIAV VUECENTRIC")
- +2 DO RESET
- +3 DO XREF
- +4 QUIT
- RESET ;EP
- +1 ;Loop through all the consult services and if set to S or R
- +2 ;change S to O and R to null
- +3 ;1 node 1st piece
- +4 NEW I,DATA
- +5 SET I=0
- +6 FOR
- SET I=$ORDER(^GMR(123.5,I))
- IF '+I
- QUIT
- Begin DoDot:1
- +7 SET DATA=$GET(^GMR(123.5,I,1))
- +8 IF $PIECE(DATA,U,1)="R"
- DO UPDATE(I,"")
- +9 IF $PIECE(DATA,U,1)="S"
- DO UPDATE(I,"O")
- End DoDot:1
- +10 QUIT
- UPDATE(IEN,VALUE) ;Update data
- +1 NEW FDA
- +2 SET FDA(123.5,I_",",1.01)=VALUE
- +3 DO FILE^DIE("E","FDA")
- +4 QUIT
- XREF ;Create a new type cross-reference
- +1 NEW XREF,RESULT,MSG
- +2 SET XREF("TYPE")="R"
- +3 SET XREF("NAME")="APRV"
- +4 SET XREF("SHORT DESCR")="Problems by provider."
- +5 SET XREF("DESCR",1)="This cross-reference sorts consult requests that have associated problems"
- +6 SET XREF("DESCR",2)="by problem, provider and inverse date. This is used to find consults by provider"
- +7 SET XREF("DESCR",3)="for a particular problem"
- +8 SET XREF("USE")="SORTING ONLY"
- +9 SET XREF("EXECUTION")="R"
- +10 SET XREF("ACTIVITY")="IR"
- +11 SET XREF("VAL",1)=9999999.02
- +12 SET XREF("VAL",1,"SUBSCRIPT")=1
- +13 SET XREF("VAL",2)=10
- +14 SET XREF("VAL",2,"SUBSCRIPT")=2
- +15 SET XREF("VAL",3)=3
- +16 SET XREF("VAL",3,"SUBSCRIPT")=3
- +17 SET XREF("VAL",3,"XFORM FOR STORAGE")="S X=9999999-X"
- +18 SET XREF("FILE")=123
- +19 SET XREF("ROOT FILE")=123
- +20 DO CREIXN^DDMOD(.XREF,"SW",.RESULT,"","MSG")
- +21 QUIT