- LA7SUTL ;DALISC/JMC - Shipping Utility ;5/5/97 14:44
- ;;5.2;LAB MESSAGING;**27**;Sep 27, 1994
- Q
- ;
- SSCFG(SCR) ; Select shipping configuration
- ; Call with X = 0 no screen
- ; = 1 active collecting facilty screen
- ; = 2 active host facility screen
- ; Returns Y = 0 (unsuccessful) or ien of entry in file #62.9 ^ .01 field name
- ;
- N DIR,DIRUT,DTOUT,DUOUT,X,Y
- S DIR(0)="PO^62.9:EM",DIR("A")="Select Shipping Configuration"
- I SCR S DIR("S")="I $P(^LAHM(62.9,Y,0),U,SCR+1)=DUZ(2),$P(^LAHM(62.9,Y,0),U,4)"
- D ^DIR
- I Y<1 S Y=0
- Q Y
- ;
- JULIAN(LA7DT) ; Calculate julian date based on date passed
- ; Call with X = VA FileMan date.
- ; Returns Y = julian date justified to 3 digits.
- N LA7JUL
- S LA7JUL=$$FMDIFF^XLFDT(LA7DT,$E(LA7DT,1,3)_"0101",1)
- S LA7JUL=LA7JUL+1
- I $L(LA7JUL)<3 S LA7JUL=$E("000",1,3-$L(LA7JUL))_LA7JUL
- Q LA7JUL
- ;
- AD(LA7AA) ; Determine current accession date for a given accession area.
- ; Call with LA7AA = ien of entry in file ACCESSION #68.
- ; Returns LA7AD = accession date in VA FileMan format
- ; 0^error message if not valid pointer
- N LA7AD,X
- S LA7AA=+$G(LA7AA)
- I $G(LA7AA)<1 Q "0^No pointer to accession file passed"
- S DT=$$DT^XLFDT
- S X=$P($G(^LRO(68,LA7AA,0)),U,3)
- I $L(X) S LA7AD=$S(X="D":DT,X="M":$E(DT,1,5)_"00",X="Y":$E(DT,1,3)_"0000",X="Q":$E(DT,1,3)_"0000"+(($E(DT,4,5)-1)\3*300+100),1:DT) ; Calculate accession date based on accession transform.
- E S LA7AD="0^No accession transform for this accession area"
- Q LA7AD
- TEST(IEN) ;USED FOR THE CATALOG
- K OUT
- G:'$D(^LAB(60,IEN,0)) EXIT
- G:$P(^LAB(60,IEN,0),U,12)="" EXIT
- S LAFLD=$P(^LAB(60,IEN,0),U,12),LADATA=@(U_LAFLD_0_")")
- S LATYP=$E($P(LADATA,U,2),1,1)
- I $L($T(@LATYP)) D @LATYP
- EXIT ;EXIT
- K LADES,LAFLD,LATYP,LADATA,LAI,LANUM,LASET
- S OUT=$G(OUT)
- Q OUT
- F ;FREE TEXT
- S OUT="FREE TEXT "
- S OUT=OUT_$G(@(U_LAFLD_3_")"))
- Q
- N ;NUMERIC
- S OUT="NUMERIC "
- S OUT=OUT_$G(@(U_LAFLD_3_")"))
- Q
- S ;SET OF CODES
- S OUT="CODES "
- S LASET=$P(LADATA,U,3),LANUM=$L(LASET,";")-1
- Q:LANUM'>0
- F LAI=1:1:LANUM S LADES=$P(LASET,";",LAI) D
- .S OUT=OUT_$P(LADES,":",1)_" = "_$P(LADES,":",2)_" "
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLA7SUTL 2206 printed Feb 18, 2025@23:06:08 Page 2
- LA7SUTL ;DALISC/JMC - Shipping Utility ;5/5/97 14:44
- +1 ;;5.2;LAB MESSAGING;**27**;Sep 27, 1994
- +2 QUIT
- +3 ;
- SSCFG(SCR) ; Select shipping configuration
- +1 ; Call with X = 0 no screen
- +2 ; = 1 active collecting facilty screen
- +3 ; = 2 active host facility screen
- +4 ; Returns Y = 0 (unsuccessful) or ien of entry in file #62.9 ^ .01 field name
- +5 ;
- +6 NEW DIR,DIRUT,DTOUT,DUOUT,X,Y
- +7 SET DIR(0)="PO^62.9:EM"
- SET DIR("A")="Select Shipping Configuration"
- +8 IF SCR
- SET DIR("S")="I $P(^LAHM(62.9,Y,0),U,SCR+1)=DUZ(2),$P(^LAHM(62.9,Y,0),U,4)"
- +9 DO ^DIR
- +10 IF Y<1
- SET Y=0
- +11 QUIT Y
- +12 ;
- JULIAN(LA7DT) ; Calculate julian date based on date passed
- +1 ; Call with X = VA FileMan date.
- +2 ; Returns Y = julian date justified to 3 digits.
- +3 NEW LA7JUL
- +4 SET LA7JUL=$$FMDIFF^XLFDT(LA7DT,$EXTRACT(LA7DT,1,3)_"0101",1)
- +5 SET LA7JUL=LA7JUL+1
- +6 IF $LENGTH(LA7JUL)<3
- SET LA7JUL=$EXTRACT("000",1,3-$LENGTH(LA7JUL))_LA7JUL
- +7 QUIT LA7JUL
- +8 ;
- AD(LA7AA) ; Determine current accession date for a given accession area.
- +1 ; Call with LA7AA = ien of entry in file ACCESSION #68.
- +2 ; Returns LA7AD = accession date in VA FileMan format
- +3 ; 0^error message if not valid pointer
- +4 NEW LA7AD,X
- +5 SET LA7AA=+$GET(LA7AA)
- +6 IF $GET(LA7AA)<1
- QUIT "0^No pointer to accession file passed"
- +7 SET DT=$$DT^XLFDT
- +8 SET X=$PIECE($GET(^LRO(68,LA7AA,0)),U,3)
- +9 ; Calculate accession date based on accession transform.
- IF $LENGTH(X)
- SET LA7AD=$SELECT(X="D":DT,X="M":$EXTRACT(DT,1,5)_"00",X="Y":$EXTRACT(DT,1,3)_"0000",X="Q":$EXTRACT(DT,1,3)_"0000"+(($EXTRACT(DT,4,5)-1)\3*300+100),1:DT)
- +10 IF '$TEST
- SET LA7AD="0^No accession transform for this accession area"
- +11 QUIT LA7AD
- TEST(IEN) ;USED FOR THE CATALOG
- +1 KILL OUT
- +2 if '$DATA(^LAB(60,IEN,0))
- GOTO EXIT
- +3 if $PIECE(^LAB(60,IEN,0),U,12)=""
- GOTO EXIT
- +4 SET LAFLD=$PIECE(^LAB(60,IEN,0),U,12)
- SET LADATA=@(U_LAFLD_0_")")
- +5 SET LATYP=$EXTRACT($PIECE(LADATA,U,2),1,1)
- +6 IF $LENGTH($TEXT(@LATYP))
- DO @LATYP
- EXIT ;EXIT
- +1 KILL LADES,LAFLD,LATYP,LADATA,LAI,LANUM,LASET
- +2 SET OUT=$GET(OUT)
- +3 QUIT OUT
- F ;FREE TEXT
- +1 SET OUT="FREE TEXT "
- +2 SET OUT=OUT_$GET(@(U_LAFLD_3_")"))
- +3 QUIT
- N ;NUMERIC
- +1 SET OUT="NUMERIC "
- +2 SET OUT=OUT_$GET(@(U_LAFLD_3_")"))
- +3 QUIT
- S ;SET OF CODES
- +1 SET OUT="CODES "
- +2 SET LASET=$PIECE(LADATA,U,3)
- SET LANUM=$LENGTH(LASET,";")-1
- +3 if LANUM'>0
- QUIT
- +4 FOR LAI=1:1:LANUM
- SET LADES=$PIECE(LASET,";",LAI)
- Begin DoDot:1
- +5 SET OUT=OUT_$PIECE(LADES,":",1)_" = "_$PIECE(LADES,":",2)_" "
- End DoDot:1
- +6 QUIT