- SCMCHLZ ;BP/DJB - PCMM HL7 Bld ZPC Segment ; 3/7/00 1:08pm
- ;;5.3;Scheduling;**177,210,212,245,286,515**;AUG 13, 1993;Build 14
- ;
- ZPC(SCSTR,SCID,SCDATA,SCSEQ) ;Main entry point for building ZPC segment
- ;
- ;Input:
- ; SCSTR...: String of fields requested separated by commas
- ; SCID....: Provider Assignment ID. Unique ID string that
- ; Austin uses for the key field.
- ; SCDATA..: "^" Delimited string that contains all data needed
- ; to build a ZPC segment. If all pieces are "", Austin
- ; does a deletion.
- ; Format:
- ; ProviderIEN^DateAssign^DateUnassign^Type
- ; Examples:
- ; 3^2980605^2990203^PCP
- ; 6^2980605^2990203^AP
- ; ""^""^""^"" (deletion)
- ; SCSEQ...: Sequentially number multiple ZPC segments.
- ; djb/bp Patch 210.
- ;Output:
- ; ZPC segment string.
- ;
- NEW CS,FS,QT,SCZPC,SS
- ;
- ;Initialize variables
- D INIT
- I $G(SCID)="" Q SCZPC
- ;
- I SCSTR[",1," D ID ;........Provider Assignment ID
- I SCSTR[",2," D PROV ;......Provider
- I SCSTR[",3," D PROVDA ;....Date provider assigned
- I SCSTR[",4," D PROVDU ;....Date provider unassigned
- I SCSTR[",5," D PROVT ;.....Provider Type code
- I SCSTR[",6," D PROVPC ;....Provider Person Class PATCH 515
- I SCSTR[",8," D PROVSSN ;...Provider SSN;bp/ar and alb/rpm Patch 212
- I SCSTR[",9," D STATION ;....5 or 6 digit station number Patch 286
- I SCSTR[",10," D TEAM ;....Team Name - Patch 515
- I SCSTR[",11," D TMIEN ;....Team IEN - Patch 515
- I SCSTR[",16," D TMPUR ;...Team Purpose Patch 515
- I $L(SCZPC)>245 D ADJUST ;..If length>245 add continuation node
- Q SCZPC
- ;
- ID ;Provider Assignment ID
- ;Convert ID to IEN of file 404.49 since it's alot shorter.
- ;ID format:
- ; IEN404.43 - IEN404.52 - IEN404.53 - AP/PCP
- ; Examples: "2290-405-34-PCP"
- ; "2290-406-0-AP"
- ;
- NEW FAC,ID,OLDID,SCERR,SCFDA,SCIEN
- ;
- ;Find ID in PCMM HL7 ID file (404.49), and use IEN.
- S ID=$O(^SCPT(404.49,"B",SCID,""))
- ;
- ;If ID not found, add it to 404.49 now.
- I 'ID D ;
- . S SCFDA(404.49,"+1,",.01)=SCID
- . D UPDATE^DIE("E","SCFDA","SCIEN","SCERR")
- . S ID=$G(SCIEN(1))
- ;
- ;bp/djb Patch 210
- ;New code begins
- ;If this is a site integration entry, use old ID.
- S FAC=SCFAC ;..Facility
- S OLDID=$P($G(^SCPT(404.49,ID,0)),U,2)
- I OLDID]"" D ;
- . S FAC=$P(OLDID,"-",1)
- . S ID=$P(OLDID,"-",2)
- ;New code ends
- ;
- ;Add ID to ZPC segment
- S $P(SCZPC,FS,2)=FAC_"-"_ID
- Q
- ;
- STATION ; Add station # suffix patch SD*5.3*286
- NEW STAT,SNUM,SCTP,TEAM,TEAMP
- S $P(SCZPC,FS,10)=""
- S SCTP=+$P(SCZPC,"-",2),SCTP=+$P($G(^SCPT(404.49,SCTP,0)),"-",1) D
- .IF SCTP S TEAMP=$$GET1^DIQ(404.43,SCTP_",",.02,"I") D
- ..IF TEAMP S SNUM=$$GET1^DIQ(404.57,TEAMP_",",.02,"I") D
- ...IF SNUM S TEAM=$$GET1^DIQ(404.51,SNUM_",",.07,"I") D
- ....IF TEAM S STAT=$$GET1^DIQ(4,TEAM_",",99) D
- .....IF STAT S $P(SCZPC,FS,10)=STAT
- Q
- ;
- TEAM ;Add Team Name patch SD*5.3*515
- NEW SNUM,SCTP,TEAM,TEAMP
- S $P(SCZPC,FS,11)=QT
- Q:'$L(($P(SCDATA,U,2)))
- S SCTP=+$P(SCZPC,"-",2),SCTP=+$P($G(^SCPT(404.49,SCTP,0)),"-",1) D
- .IF SCTP S TEAMP=$$GET1^DIQ(404.43,SCTP_",",.02,"I") D
- ..IF TEAMP S SNUM=$$GET1^DIQ(404.57,TEAMP_",",.02,"I") D
- ...IF SNUM S TEAM=$$GET1^DIQ(404.51,SNUM_",",.01,"I") D
- ....IF $L(TEAM)>0 S $P(SCZPC,FS,11)=TEAM
- Q
- ;
- TMIEN ;Add Team IEN patch SD*5.3*515
- NEW SNUM,SCTP,TEAMP
- S $P(SCZPC,FS,12)=QT
- Q:'$L(($P(SCDATA,U,2)))
- S SCTP=+$P(SCZPC,"-",2),SCTP=+$P($G(^SCPT(404.49,SCTP,0)),"-",1) D
- .IF SCTP S TEAMP=$$GET1^DIQ(404.43,SCTP_",",.02,"I") D
- ..IF TEAMP S SNUM=$$GET1^DIQ(404.57,TEAMP_",",.02,"I") D
- ...IF SNUM S $P(SCZPC,FS,12)=SNUM
- Q
- ;
- PROV ;Provider
- NEW PROV,PTR200,SCNAM,SCNAME,SCTMP,X
- ;
- S $P(SCZPC,FS,3)=QT
- S PTR200=+SCDATA
- Q:'PTR200
- ;
- ;Get External Provider ID
- D PERSON^VAFHLRO3(PTR200,"SCTMP",QT)
- Q:'$D(SCTMP)
- S PROV=SCTMP(1,1,1)_SS_SCTMP(1,1,2)
- S $P(PROV,CS,8)=SCTMP(1,8)
- ;rpm/alb patch 210-Stuff facility in Assigning Facility(component 14)
- S $P(PROV,CS,14)=SCTMP(1,1,2)
- ;rpm/alb patch 210
- ;Get Standardized Name using Kernel API
- ;Standardized Name retrieval allowed by IA #3065
- S SCNAM("FILE")=200
- S SCNAM("IENS")=PTR200_","
- S SCNAM("FIELD")=.01
- S SCNAME=$$HLNAME^XLFNAME(.SCNAM,"",FS)
- F X=2:1:7 S $P(PROV,CS,X)=$P(SCNAME,FS,X-1)
- F X=9:1:13 S $P(PROV,CS,X)=""
- ;
- ;Add provider to ZPC segment
- S $P(SCZPC,FS,3)=PROV
- Q
- ;
- PROVDA ;Provider - Date Assigned
- NEW DATE
- S $P(SCZPC,FS,4)=QT
- S DATE=$P(SCDATA,U,2)
- Q:'DATE
- S $P(SCZPC,FS,4)=$$HLDATE^HLFNC(DATE,"DT")
- Q
- ;
- PROVDU ;Provider - Date Unassigned
- NEW DATE
- S $P(SCZPC,FS,5)=QT
- S DATE=$P(SCDATA,U,3)
- Q:'DATE
- S $P(SCZPC,FS,5)=$$HLDATE^HLFNC(DATE,"DT")
- Q
- ;
- PROVT ;Provider - Type code
- NEW PT
- S $P(SCZPC,FS,6)=QT
- S PT=$P(SCDATA,U,4)
- Q:PT']""
- S $P(SCZPC,FS,6)=PT
- Q
- ;
- PROVPC ;Provider - Person Class
- NEW CODE,PTR200
- S $P(SCZPC,FS,7)=QT
- S PTR200=+SCDATA
- Q:'PTR200
- S CODE=$$GET^XUA4A72(PTR200)
- ; PATCH 515 OLD CODE
- ; I CODE=-1!'CODE Q
- ; S $P(SCZPC,FS,7)=$P(CODE,"^",7)_CS_CS_"VA8932.1"
- I CODE=-1!'CODE S CODE=""
- S CODE=$P(CODE,"^",7)
- S $P(SCZPC,FS,7)=CODE_CS_CS_"VA8932.1"
- Q
- ;
- PROVSSN ;Provider - Social Security Number
- ;bp/ar and alb/rpm Patch 212
- NEW SCSNN,PTR200,SC200,SCARRY
- S $P(SCZPC,FS,9)=QT
- S PTR200=+SCDATA
- Q:'PTR200
- S SC200=$$NEWPERSN^SCMCGU(PTR200,"SCARRY")
- I SC200'=1 Q
- S SCSNN=$P($G(SCARRY(PTR200)),U,6)
- Q:SCSNN'?9N
- S $P(SCZPC,FS,9)=SCSNN
- Q
- ;
- TMPUR ; TEAM PURPOSE ADDED PATCH 515 send in BOTH DELETE & ADD
- S $P(SCZPC,FS,17)=QT
- ; Q:SCDATA="^^^" COMMENT OUT SO SEND W DELETE TOO
- NEW SCTMPI,SCTMP,SCTPD,SCTM,TMD,ND,SCTP
- ; Read PATIENT TEAM ASS FILE
- S ND=$G(^SCPT(404.43,$P(SCID,"-",1),0))
- Q:ND=""
- S SCTP=$P(ND,U,2) ; TP
- ; READ TP REC (57)
- S SCTPD=$G(^SCTM(404.57,SCTP,0))
- Q:SCTPD=""
- S SCTM=$P(SCTPD,U,2)
- ; READ TEAM FILE (404.51
- S TMD=^SCTM(404.51,SCTM,0)
- S SCTMP=$P(TMD,U,3)
- Q:SCTMP=""
- S SCTMPI=SCTMP
- S SCTMP=$G(^SD(403.47,SCTMP,0))
- Q:SCTMP=""
- S SCTMP=$P(SCTMP,U,1)
- Q:SCTMP=""
- S $P(SCZPC,FS,17)=SCTMPI_CS_SCTMP
- Q
- ;
- INIT ;Initialize variables
- ;
- ;Set delimeter values
- S FS=HL("FS") ;.........^
- S CS=$E(HL("ECH"),1) ;..~
- S SS=$E(HL("ECH"),4) ;..&
- S QT=HL("Q") ;..........""
- ;
- ;Default SCSEQ to 1. djb/bp Patch 210
- S:'$G(SCSEQ) SCSEQ=1
- ;
- ;Initialize ZPC segment to all nulls.
- ;bp/ar and alb/rpm Patch 212
- ;S $P(SCZPC,FS,5)="^" ;Initialize as empty; not null.
- ;S SCZPC="ZPC"_FS_SCZPC_FS_SCSEQ ;djb/bp Patch 210
- S $P(SCZPC,FS,9)=""
- S $P(SCZPC,FS,10)="" ; PATCH 286
- S $P(SCZPC,FS,11)="" ; PATCH 515
- S $P(SCZPC,FS,12)="" ; PATCH 515
- ; DEBBIE LEVY TPA CHGS 20070518 PATCH 515
- S $P(SCZPC,FS,17)=""
- S $P(SCZPC,FS,1)="ZPC"
- S $P(SCZPC,FS,8)=SCSEQ
- ;
- ;Initialize SCSTR to fields user requested.
- S SCSTR=$G(SCSTR)
- ;bp/ar and alb/rpm Added "8" to default fields Patch 212
- ; Added "9" to default fields Patch 286
- ; DEBBIE LEVY TPA CHGS 20070518 PATCH 515
- ; added team (10), team IEN (11) and team purpose (16)
- ;I SCSTR']"" S SCSTR="1,2,3,4,5,6,8,9" ;Default fields
- I SCSTR']"" S SCSTR="1,2,3,4,5,6,8,9,10,11,16" ;Default fields
- ;Add starting and ending comma.
- I $E(SCSTR)'="," S SCSTR=","_SCSTR
- I $E(SCSTR,$L(SCSTR))'="," S SCSTR=SCSTR_","
- Q
- ;
- ADJUST ;Add a continuation node if length is greater than 245.
- Q:$L(SCZPC)'>245
- S SCZPC(1)=$E(SCZPC,246,999) ;
- S SCZPC=$E(SCZPC,1,245)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HSCMCHLZ 7500 printed Mar 13, 2025@21:45:41 Page 2
- SCMCHLZ ;BP/DJB - PCMM HL7 Bld ZPC Segment ; 3/7/00 1:08pm
- +1 ;;5.3;Scheduling;**177,210,212,245,286,515**;AUG 13, 1993;Build 14
- +2 ;
- ZPC(SCSTR,SCID,SCDATA,SCSEQ) ;Main entry point for building ZPC segment
- +1 ;
- +2 ;Input:
- +3 ; SCSTR...: String of fields requested separated by commas
- +4 ; SCID....: Provider Assignment ID. Unique ID string that
- +5 ; Austin uses for the key field.
- +6 ; SCDATA..: "^" Delimited string that contains all data needed
- +7 ; to build a ZPC segment. If all pieces are "", Austin
- +8 ; does a deletion.
- +9 ; Format:
- +10 ; ProviderIEN^DateAssign^DateUnassign^Type
- +11 ; Examples:
- +12 ; 3^2980605^2990203^PCP
- +13 ; 6^2980605^2990203^AP
- +14 ; ""^""^""^"" (deletion)
- +15 ; SCSEQ...: Sequentially number multiple ZPC segments.
- +16 ; djb/bp Patch 210.
- +17 ;Output:
- +18 ; ZPC segment string.
- +19 ;
- +20 NEW CS,FS,QT,SCZPC,SS
- +21 ;
- +22 ;Initialize variables
- +23 DO INIT
- +24 IF $GET(SCID)=""
- QUIT SCZPC
- +25 ;
- +26 ;........Provider Assignment ID
- IF SCSTR[",1,"
- DO ID
- +27 ;......Provider
- IF SCSTR[",2,"
- DO PROV
- +28 ;....Date provider assigned
- IF SCSTR[",3,"
- DO PROVDA
- +29 ;....Date provider unassigned
- IF SCSTR[",4,"
- DO PROVDU
- +30 ;.....Provider Type code
- IF SCSTR[",5,"
- DO PROVT
- +31 ;....Provider Person Class PATCH 515
- IF SCSTR[",6,"
- DO PROVPC
- +32 ;...Provider SSN;bp/ar and alb/rpm Patch 212
- IF SCSTR[",8,"
- DO PROVSSN
- +33 ;....5 or 6 digit station number Patch 286
- IF SCSTR[",9,"
- DO STATION
- +34 ;....Team Name - Patch 515
- IF SCSTR[",10,"
- DO TEAM
- +35 ;....Team IEN - Patch 515
- IF SCSTR[",11,"
- DO TMIEN
- +36 ;...Team Purpose Patch 515
- IF SCSTR[",16,"
- DO TMPUR
- +37 ;..If length>245 add continuation node
- IF $LENGTH(SCZPC)>245
- DO ADJUST
- +38 QUIT SCZPC
- +39 ;
- ID ;Provider Assignment ID
- +1 ;Convert ID to IEN of file 404.49 since it's alot shorter.
- +2 ;ID format:
- +3 ; IEN404.43 - IEN404.52 - IEN404.53 - AP/PCP
- +4 ; Examples: "2290-405-34-PCP"
- +5 ; "2290-406-0-AP"
- +6 ;
- +7 NEW FAC,ID,OLDID,SCERR,SCFDA,SCIEN
- +8 ;
- +9 ;Find ID in PCMM HL7 ID file (404.49), and use IEN.
- +10 SET ID=$ORDER(^SCPT(404.49,"B",SCID,""))
- +11 ;
- +12 ;If ID not found, add it to 404.49 now.
- +13 ;
- IF 'ID
- Begin DoDot:1
- +14 SET SCFDA(404.49,"+1,",.01)=SCID
- +15 DO UPDATE^DIE("E","SCFDA","SCIEN","SCERR")
- +16 SET ID=$GET(SCIEN(1))
- End DoDot:1
- +17 ;
- +18 ;bp/djb Patch 210
- +19 ;New code begins
- +20 ;If this is a site integration entry, use old ID.
- +21 ;..Facility
- SET FAC=SCFAC
- +22 SET OLDID=$PIECE($GET(^SCPT(404.49,ID,0)),U,2)
- +23 ;
- IF OLDID]""
- Begin DoDot:1
- +24 SET FAC=$PIECE(OLDID,"-",1)
- +25 SET ID=$PIECE(OLDID,"-",2)
- End DoDot:1
- +26 ;New code ends
- +27 ;
- +28 ;Add ID to ZPC segment
- +29 SET $PIECE(SCZPC,FS,2)=FAC_"-"_ID
- +30 QUIT
- +31 ;
- STATION ; Add station # suffix patch SD*5.3*286
- +1 NEW STAT,SNUM,SCTP,TEAM,TEAMP
- +2 SET $PIECE(SCZPC,FS,10)=""
- +3 SET SCTP=+$PIECE(SCZPC,"-",2)
- SET SCTP=+$PIECE($GET(^SCPT(404.49,SCTP,0)),"-",1)
- Begin DoDot:1
- +4 IF SCTP
- SET TEAMP=$$GET1^DIQ(404.43,SCTP_",",.02,"I")
- Begin DoDot:2
- +5 IF TEAMP
- SET SNUM=$$GET1^DIQ(404.57,TEAMP_",",.02,"I")
- Begin DoDot:3
- +6 IF SNUM
- SET TEAM=$$GET1^DIQ(404.51,SNUM_",",.07,"I")
- Begin DoDot:4
- +7 IF TEAM
- SET STAT=$$GET1^DIQ(4,TEAM_",",99)
- Begin DoDot:5
- +8 IF STAT
- SET $PIECE(SCZPC,FS,10)=STAT
- End DoDot:5
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +9 QUIT
- +10 ;
- TEAM ;Add Team Name patch SD*5.3*515
- +1 NEW SNUM,SCTP,TEAM,TEAMP
- +2 SET $PIECE(SCZPC,FS,11)=QT
- +3 if '$LENGTH(($PIECE(SCDATA,U,2)))
- QUIT
- +4 SET SCTP=+$PIECE(SCZPC,"-",2)
- SET SCTP=+$PIECE($GET(^SCPT(404.49,SCTP,0)),"-",1)
- Begin DoDot:1
- +5 IF SCTP
- SET TEAMP=$$GET1^DIQ(404.43,SCTP_",",.02,"I")
- Begin DoDot:2
- +6 IF TEAMP
- SET SNUM=$$GET1^DIQ(404.57,TEAMP_",",.02,"I")
- Begin DoDot:3
- +7 IF SNUM
- SET TEAM=$$GET1^DIQ(404.51,SNUM_",",.01,"I")
- Begin DoDot:4
- +8 IF $LENGTH(TEAM)>0
- SET $PIECE(SCZPC,FS,11)=TEAM
- End DoDot:4
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +9 QUIT
- +10 ;
- TMIEN ;Add Team IEN patch SD*5.3*515
- +1 NEW SNUM,SCTP,TEAMP
- +2 SET $PIECE(SCZPC,FS,12)=QT
- +3 if '$LENGTH(($PIECE(SCDATA,U,2)))
- QUIT
- +4 SET SCTP=+$PIECE(SCZPC,"-",2)
- SET SCTP=+$PIECE($GET(^SCPT(404.49,SCTP,0)),"-",1)
- Begin DoDot:1
- +5 IF SCTP
- SET TEAMP=$$GET1^DIQ(404.43,SCTP_",",.02,"I")
- Begin DoDot:2
- +6 IF TEAMP
- SET SNUM=$$GET1^DIQ(404.57,TEAMP_",",.02,"I")
- Begin DoDot:3
- +7 IF SNUM
- SET $PIECE(SCZPC,FS,12)=SNUM
- End DoDot:3
- End DoDot:2
- End DoDot:1
- +8 QUIT
- +9 ;
- PROV ;Provider
- +1 NEW PROV,PTR200,SCNAM,SCNAME,SCTMP,X
- +2 ;
- +3 SET $PIECE(SCZPC,FS,3)=QT
- +4 SET PTR200=+SCDATA
- +5 if 'PTR200
- QUIT
- +6 ;
- +7 ;Get External Provider ID
- +8 DO PERSON^VAFHLRO3(PTR200,"SCTMP",QT)
- +9 if '$DATA(SCTMP)
- QUIT
- +10 SET PROV=SCTMP(1,1,1)_SS_SCTMP(1,1,2)
- +11 SET $PIECE(PROV,CS,8)=SCTMP(1,8)
- +12 ;rpm/alb patch 210-Stuff facility in Assigning Facility(component 14)
- +13 SET $PIECE(PROV,CS,14)=SCTMP(1,1,2)
- +14 ;rpm/alb patch 210
- +15 ;Get Standardized Name using Kernel API
- +16 ;Standardized Name retrieval allowed by IA #3065
- +17 SET SCNAM("FILE")=200
- +18 SET SCNAM("IENS")=PTR200_","
- +19 SET SCNAM("FIELD")=.01
- +20 SET SCNAME=$$HLNAME^XLFNAME(.SCNAM,"",FS)
- +21 FOR X=2:1:7
- SET $PIECE(PROV,CS,X)=$PIECE(SCNAME,FS,X-1)
- +22 FOR X=9:1:13
- SET $PIECE(PROV,CS,X)=""
- +23 ;
- +24 ;Add provider to ZPC segment
- +25 SET $PIECE(SCZPC,FS,3)=PROV
- +26 QUIT
- +27 ;
- PROVDA ;Provider - Date Assigned
- +1 NEW DATE
- +2 SET $PIECE(SCZPC,FS,4)=QT
- +3 SET DATE=$PIECE(SCDATA,U,2)
- +4 if 'DATE
- QUIT
- +5 SET $PIECE(SCZPC,FS,4)=$$HLDATE^HLFNC(DATE,"DT")
- +6 QUIT
- +7 ;
- PROVDU ;Provider - Date Unassigned
- +1 NEW DATE
- +2 SET $PIECE(SCZPC,FS,5)=QT
- +3 SET DATE=$PIECE(SCDATA,U,3)
- +4 if 'DATE
- QUIT
- +5 SET $PIECE(SCZPC,FS,5)=$$HLDATE^HLFNC(DATE,"DT")
- +6 QUIT
- +7 ;
- PROVT ;Provider - Type code
- +1 NEW PT
- +2 SET $PIECE(SCZPC,FS,6)=QT
- +3 SET PT=$PIECE(SCDATA,U,4)
- +4 if PT']""
- QUIT
- +5 SET $PIECE(SCZPC,FS,6)=PT
- +6 QUIT
- +7 ;
- PROVPC ;Provider - Person Class
- +1 NEW CODE,PTR200
- +2 SET $PIECE(SCZPC,FS,7)=QT
- +3 SET PTR200=+SCDATA
- +4 if 'PTR200
- QUIT
- +5 SET CODE=$$GET^XUA4A72(PTR200)
- +6 ; PATCH 515 OLD CODE
- +7 ; I CODE=-1!'CODE Q
- +8 ; S $P(SCZPC,FS,7)=$P(CODE,"^",7)_CS_CS_"VA8932.1"
- +9 IF CODE=-1!'CODE
- SET CODE=""
- +10 SET CODE=$PIECE(CODE,"^",7)
- +11 SET $PIECE(SCZPC,FS,7)=CODE_CS_CS_"VA8932.1"
- +12 QUIT
- +13 ;
- PROVSSN ;Provider - Social Security Number
- +1 ;bp/ar and alb/rpm Patch 212
- +2 NEW SCSNN,PTR200,SC200,SCARRY
- +3 SET $PIECE(SCZPC,FS,9)=QT
- +4 SET PTR200=+SCDATA
- +5 if 'PTR200
- QUIT
- +6 SET SC200=$$NEWPERSN^SCMCGU(PTR200,"SCARRY")
- +7 IF SC200'=1
- QUIT
- +8 SET SCSNN=$PIECE($GET(SCARRY(PTR200)),U,6)
- +9 if SCSNN'?9N
- QUIT
- +10 SET $PIECE(SCZPC,FS,9)=SCSNN
- +11 QUIT
- +12 ;
- TMPUR ; TEAM PURPOSE ADDED PATCH 515 send in BOTH DELETE & ADD
- +1 SET $PIECE(SCZPC,FS,17)=QT
- +2 ; Q:SCDATA="^^^" COMMENT OUT SO SEND W DELETE TOO
- +3 NEW SCTMPI,SCTMP,SCTPD,SCTM,TMD,ND,SCTP
- +4 ; Read PATIENT TEAM ASS FILE
- +5 SET ND=$GET(^SCPT(404.43,$PIECE(SCID,"-",1),0))
- +6 if ND=""
- QUIT
- +7 ; TP
- SET SCTP=$PIECE(ND,U,2)
- +8 ; READ TP REC (57)
- +9 SET SCTPD=$GET(^SCTM(404.57,SCTP,0))
- +10 if SCTPD=""
- QUIT
- +11 SET SCTM=$PIECE(SCTPD,U,2)
- +12 ; READ TEAM FILE (404.51
- +13 SET TMD=^SCTM(404.51,SCTM,0)
- +14 SET SCTMP=$PIECE(TMD,U,3)
- +15 if SCTMP=""
- QUIT
- +16 SET SCTMPI=SCTMP
- +17 SET SCTMP=$GET(^SD(403.47,SCTMP,0))
- +18 if SCTMP=""
- QUIT
- +19 SET SCTMP=$PIECE(SCTMP,U,1)
- +20 if SCTMP=""
- QUIT
- +21 SET $PIECE(SCZPC,FS,17)=SCTMPI_CS_SCTMP
- +22 QUIT
- +23 ;
- INIT ;Initialize variables
- +1 ;
- +2 ;Set delimeter values
- +3 ;.........^
- SET FS=HL("FS")
- +4 ;..~
- SET CS=$EXTRACT(HL("ECH"),1)
- +5 ;..&
- SET SS=$EXTRACT(HL("ECH"),4)
- +6 ;..........""
- SET QT=HL("Q")
- +7 ;
- +8 ;Default SCSEQ to 1. djb/bp Patch 210
- +9 if '$GET(SCSEQ)
- SET SCSEQ=1
- +10 ;
- +11 ;Initialize ZPC segment to all nulls.
- +12 ;bp/ar and alb/rpm Patch 212
- +13 ;S $P(SCZPC,FS,5)="^" ;Initialize as empty; not null.
- +14 ;S SCZPC="ZPC"_FS_SCZPC_FS_SCSEQ ;djb/bp Patch 210
- +15 SET $PIECE(SCZPC,FS,9)=""
- +16 ; PATCH 286
- SET $PIECE(SCZPC,FS,10)=""
- +17 ; PATCH 515
- SET $PIECE(SCZPC,FS,11)=""
- +18 ; PATCH 515
- SET $PIECE(SCZPC,FS,12)=""
- +19 ; DEBBIE LEVY TPA CHGS 20070518 PATCH 515
- +20 SET $PIECE(SCZPC,FS,17)=""
- +21 SET $PIECE(SCZPC,FS,1)="ZPC"
- +22 SET $PIECE(SCZPC,FS,8)=SCSEQ
- +23 ;
- +24 ;Initialize SCSTR to fields user requested.
- +25 SET SCSTR=$GET(SCSTR)
- +26 ;bp/ar and alb/rpm Added "8" to default fields Patch 212
- +27 ; Added "9" to default fields Patch 286
- +28 ; DEBBIE LEVY TPA CHGS 20070518 PATCH 515
- +29 ; added team (10), team IEN (11) and team purpose (16)
- +30 ;I SCSTR']"" S SCSTR="1,2,3,4,5,6,8,9" ;Default fields
- +31 ;Default fields
- IF SCSTR']""
- SET SCSTR="1,2,3,4,5,6,8,9,10,11,16"
- +32 ;Add starting and ending comma.
- +33 IF $EXTRACT(SCSTR)'=","
- SET SCSTR=","_SCSTR
- +34 IF $EXTRACT(SCSTR,$LENGTH(SCSTR))'=","
- SET SCSTR=SCSTR_","
- +35 QUIT
- +36 ;
- ADJUST ;Add a continuation node if length is greater than 245.
- +1 if $LENGTH(SCZPC)'>245
- QUIT
- +2 ;
- SET SCZPC(1)=$EXTRACT(SCZPC,246,999)
- +3 SET SCZPC=$EXTRACT(SCZPC,1,245)
- +4 QUIT