Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: GMPLSLI1

GMPLSLI1.m

Go to the documentation of this file.
  1. GMPLSLI1 ;ISP/TC - Problem Selection List Import Utility ;04/13/2020
  1. ;;2.0;Problem List;**49,55**;Aug 25, 1994;Build 1
  1. ;
  1. ; External References:
  1. ; ICR 2053 FILE/UPDATE^DIE
  1. ; ICR 2320 $$PWD/$$LIST/$$FTG^%ZISH
  1. ; ICR 2607 BROWSE^DDBR
  1. ; ICR 5553 $$GETURL^XTHC10
  1. ; ICR 10103 $$DT^XLFDT
  1. ; ICR 10104 $$LJ/$$LOW/$$REPEAT^XLFSTR
  1. ; ICR 10026 ^DIR
  1. ; ICR 10142 EN^DDIOL
  1. ;
  1. IMP ; Import categories & diagnoses into a selection list
  1. N DIR,Y,GMPLLDOK,GMPLOPT
  1. ;Present the menu of import choices.
  1. S DIR(0)="S^HF:CSV host file;"
  1. S DIR(0)=DIR(0)_"WEB:CSV file from a web site"
  1. S DIR("A")="Select the import method"
  1. D ^DIR
  1. S GMPLOPT=Y
  1. I GMPLOPT="HF" D
  1. . S GMPLLDOK=$$LOADHF("GMPLSLIM")
  1. . I GMPLLDOK D IMPCSV("GMPLSLIM")
  1. I GMPLOPT="WEB" D
  1. . S GMPLLDOK=$$LOADWEB("GMPLSLIM")
  1. . I GMPLLDOK D IMPCSV("GMPLSLIM")
  1. Q
  1. ;============================================
  1. IMPCSV(GMPLNODE) ;Import comma separated data into the Problem Selection List & Category files
  1. ; Flag indicators: '#' - Add/edit, '@' - Delete
  1. ;
  1. ; The expected format is:
  1. ; #/@, Selection List Name, List Class, Category Class
  1. ; #/@, Category Sequence, Category Name, Subheader
  1. ; #/@, Problem Sequence, Display Text, ICD code, SCT code, SCT designation
  1. ;
  1. I '$D(^TMP($J,GMPLNODE)) Q 0
  1. N GMPLI,GMPLABRT,GMPLTMP,GMPLFLAG,GMPLIMPT,GMPLRNDE
  1. S (GMPLI,GMPLABRT)=0,GMPLIMPT=1,GMPLRNDE="GMPLIRPT"
  1. D EN^DDIOL("Starting the import process ... ","","!!")
  1. W !
  1. F S GMPLI=$O(^TMP($J,GMPLNODE,GMPLI)) Q:GMPLI="" D
  1. . S GMPLTMP=^TMP($J,GMPLNODE,GMPLI,1)
  1. . I '$$ISCSV^GMPLSLI2(GMPLTMP) Q
  1. . S GMPLFLAG=$P(GMPLTMP,",",1)
  1. . ; Retrieve/validate selection list name & class
  1. . I GMPLI=1 D
  1. . . S GMPLABRT=$$VALSLST(GMPLTMP,GMPLFLAG,GMPLIMPT,GMPLRNDE,GMPLABRT)
  1. . ; Retrieve/validate category information
  1. . I GMPLFLAG'>0,(GMPLI>1),('$L($$STRIP^XLFSTR($P(GMPLTMP,",",5),""_$C(13)_""))) D
  1. . . S GMPLABRT=$$VALCAT(GMPLTMP,GMPLFLAG,GMPLIMPT,GMPLRNDE,GMPLABRT)
  1. . ; Check for valid Problem sequence numbers
  1. . I GMPLI>2,($L($$STRIP^XLFSTR($P(GMPLTMP,",",5),""_$C(13)_""))) D
  1. . . I '+$$VSEQ^GMPLINTR(GMPLFLAG,"Problem") S GMPLABRT=1
  1. . ; Retrieve/validate category problems
  1. . I GMPLFLAG>0 D
  1. . . S GMPLABRT=$$VALCPROB(GMPLTMP,GMPLRNDE,GMPLABRT)
  1. I GMPLABRT D EN^DDIOL("Import process aborted due to validation errors.","","!!") G IMPCSVQT
  1. D MSGHNDL(GMPLNODE,GMPLRNDE)
  1. K ^TMP($J,GMPLNODE),^TMP($J,GMPLRNDE)
  1. IMPCSVQT W ! D PAUSE^GMPLX
  1. Q
  1. ;============================================
  1. LOADHF(GMPLNOUT) ;Load the CSV host file into ^TMP.
  1. ;The name of the host file should have a ".CSV" extension.
  1. N GMPLFILE,GMPLGBL,GMPLLHF,GMPLPATH,GMPLTMP
  1. S GMPLTMP=$$GETEHF^GMPLUTL4("CSV")
  1. I GMPLTMP="" Q 0
  1. S GMPLPATH=$P(GMPLTMP,U,1),GMPLFILE=$P(GMPLTMP,U,2)
  1. ;Load the host file into ^TMP.
  1. K ^TMP($J,GMPLNOUT),^TMP($J,"GMPLHCSV")
  1. S GMPLGBL="^TMP($J,""GMPLHCSV"",1)"
  1. S GMPLGBL=$NA(@GMPLGBL)
  1. ;Load the file contents into ^TMP.
  1. S GMPLLHF=$$FTG^%ZISH(GMPLPATH,GMPLFILE,GMPLGBL,3)
  1. I GMPLLHF=0 D EN^DDIOL("The host file load failed") H 2 K ^TMP($J,"GMPLHCSV") Q 0
  1. D RBLCKHF^GMPLSLI2("GMPLHCSV",GMPLNOUT)
  1. K ^TMP($J,"GMPLHCSV")
  1. Q 1
  1. ;============================================
  1. LOADWEB(GMPLNOUT) ;Load the CSV file from a web site into ^TMP
  1. N DIR,GMPLHDR,GMPLRSLT,GMPLTXT,GMPLURL,Y
  1. S DIR(0)="F^10:245"
  1. S DIR("A")="Input the URL for the CSV file"
  1. D ^DIR
  1. I (Y="")!(Y=U) Q 0
  1. S GMPLURL=Y
  1. S Y=$$LOW^XLFSTR(Y)
  1. ;Load the file contents into ^TMP.
  1. K ^TMP($J,GMPLNOUT),^TMP($J,"GMPLWCSV")
  1. ;DBIA #5553
  1. S GMPLRSLT=$$GETURL^XTHC10(GMPLURL,10,"^TMP($J,""GMPLWCSV"")",.GMPLHDR)
  1. I $P(GMPLRSLT,U,1)'=200 D Q 0
  1. . S GMPLTXT="Could not load the csv file: "
  1. . S GMPLTXT=GMPLTXT_"Error "_$P(GMPLRSLT,U,1)_" "_$P(GMPLRSLT,U,2)
  1. . D EN^DDIOL(.GMPLTXT) H 2
  1. . K ^TMP($J,"GMPLWCSV")
  1. D RBLCKWEB^GMPLSLI2("GMPLWCSV",GMPLNOUT)
  1. K ^TMP($J,"GMPLWCSV")
  1. Q 1
  1. ;============================================
  1. MSGHNDL(GMPLNODE,GMPLRNDE) ; Message prompt and handling
  1. N GMPLANS,GMPLSVOK,GMPLPUOK,GMPLMSG
  1. S GMPLANS=$$ASKYN^GMPLUTL4("Y","Do you want to review the problem selection list contents")
  1. I GMPLANS D BROWSE^DDBR("^TMP($J,"""_GMPLRNDE_""")","NR","Selection List Contents To Be Imported")
  1. S GMPLANS=$$ASKYN^GMPLUTL4("N","Do you want to save the imported list contents")
  1. I GMPLANS D
  1. . S GMPLSVOK=$$UPDTCNT(GMPLNODE)
  1. . I GMPLSVOK D
  1. . . S GMPLPUOK=$$POSTUPDT(GMPLNODE)
  1. . . I GMPLPUOK D EN^DDIOL("Import process completed successfully.","","!!")
  1. . . E D
  1. . . . S GMPLMSG(1)="Import process partially failed due to the above errors."
  1. . . . S GMPLMSG(1,"F")="!!"
  1. . . . S GMPLMSG(2)="Some content may/may not have been saved completely."
  1. . . . S GMPLMSG(3)="Verify newly imported content w/the import file, correct any errors, & re-import"
  1. . . . D EN^DDIOL(.GMPLMSG)
  1. E D EN^DDIOL("Import process aborted.","","!!")
  1. Q
  1. ;============================================
  1. POSTUPDT(GMPLNODE) ; Save the list categories & diagnoses
  1. N GMPLI,GMPLREC,GMPLFLAG,GMPLLNME,GMPLCCLS
  1. N GMPLCLS,GMPLCNME,GMPLADDC,GMPLOK
  1. S (GMPLI,GMPLADDC)=0,GMPLOK=1
  1. F S GMPLI=$O(^TMP($J,GMPLNODE,GMPLI)) Q:GMPLI="" D
  1. . S GMPLREC=^TMP($J,GMPLNODE,GMPLI,1)
  1. . I GMPLREC="" Q
  1. . S GMPLFLAG=$P(GMPLREC,",",1)
  1. . I GMPLI=1 D
  1. . . S GMPLLNME=$P(GMPLREC,",",2),GMPLCCLS=$$UP^XLFSTR($P(GMPLREC,",",4))
  1. . . S GMPLCLS=$S(GMPLCCLS="NATIONAL":"N",GMPLCCLS="LOCAL":"L",GMPLCCLS="VISN":"V",1:"")
  1. . ; Retrieve & save category info
  1. . I GMPLFLAG'>0,(GMPLI>1) D Q
  1. . . S GMPLCNME=$$UP^XLFSTR($P(GMPLREC,",",3)),GMPLADDC=$S(GMPLFLAG="#":1,1:0)
  1. . . S GMPLOK=$$SVC12511(GMPLREC,GMPLFLAG,GMPLCLS,GMPLCCLS,GMPLOK)
  1. . . I GMPLOK S GMPLOK=$$SVC12501(GMPLREC,GMPLFLAG,GMPLLNME,GMPLOK)
  1. . ; Retrieve & save category problems
  1. . I GMPLADDC,(GMPLFLAG>0) D
  1. . . S GMPLOK=$$SVPROB(GMPLREC,GMPLCNME,GMPLOK)
  1. I $D(^GMPL(125.11,0)) S $P(^GMPL(125.11,0),U,3)=0
  1. K ^GMPLCIEN(1),^GMPLINRT(1)
  1. Q GMPLOK
  1. ;============================================
  1. SVC12501(GMPLREC,GMPLFLAG,GMPLLNME,GMPLOK) ; Save category info into subfile 125.01
  1. N GMPLLIEN,GMPLDA,GMPLKFDA,GMPLFDA,GMPLIENS
  1. N GMPLCSEQ,GMPLCNME,GMPLSHDR,GMPLMSG,GMPLTXT
  1. S GMPLCSEQ=$P(GMPLREC,",",2),GMPLCNME=$$UP^XLFSTR($P(GMPLREC,",",3))
  1. S GMPLSHDR=$P(GMPLREC,",",4)
  1. S GMPLLIEN=+$$FIND1^DIC(125,"","K",GMPLLNME,"","","GMPLMSG")
  1. I GMPLFLAG="@",(GMPLLIEN>0) D G SVCQT
  1. . S GMPLDA=+$$FIND1^DIC(125.01,","_GMPLLIEN_",","K",GMPLCNME,"","","GMPLMSG")
  1. . I GMPLDA>0 D
  1. . . S GMPLKFDA(125.01,""_GMPLDA_","_GMPLLIEN_",",.01)="@"
  1. . . D FILE^DIE("K","GMPLKFDA","GMPLMSG")
  1. I GMPLFLAG="@" G SVCQT
  1. S GMPLIENS=$S(GMPLLIEN>0:"+2,"_GMPLLIEN_",",1:"+2,+1,")
  1. S GMPLFDA(125.01,GMPLIENS,.01)=GMPLCNME
  1. S GMPLFDA(125.01,GMPLIENS,.02)=GMPLCSEQ
  1. S GMPLFDA(125.01,GMPLIENS,.03)=GMPLSHDR
  1. S GMPLFDA(125.01,GMPLIENS,.04)="YES"
  1. D UPDATE^DIE("E","GMPLFDA","","GMPLMSG")
  1. SVCQT I $D(GMPLMSG) D
  1. . S GMPLTXT(1)="Unable to "_$S(GMPLFLAG="@":"delete",1:"store")
  1. . S GMPLTXT(1)=GMPLTXT(1)_" category "_GMPLCNME_" under list "_GMPLLNME
  1. . S GMPLTXT(2)="Error "_GMPLMSG("DIERR",1)_": "_GMPLMSG("DIERR",1,"TEXT",1)
  1. . D EN^DDIOL(.GMPLTXT) S GMPLOK=0
  1. Q GMPLOK
  1. ;============================================
  1. SVC12511(GMPLREC,GMPLFLAG,GMPLCLS,GMPLCCLS,GMPLOK) ; Save category info into file 125.11
  1. N GMPLCSEQ,GMPLCNME,GMPLSHDR,GMPLKFDA
  1. N GMPLMSG,GMPLFDA,GMPLTXT
  1. K ^GMPLCIEN(1),^GMPLINRT(1)
  1. S GMPLCSEQ=$P(GMPLREC,",",2),GMPLCNME=$$UP^XLFSTR($P(GMPLREC,",",3))
  1. S GMPLSHDR=$P(GMPLREC,",",4)
  1. ;If there are any existing entries for this category,
  1. ;delete them prior to storing the new set.
  1. S ^GMPLCIEN(1)=+$$FIND1^DIC(125.11,"","K",GMPLCNME,"","","GMPLMSG")
  1. I $G(^GMPLCIEN(1))>0 D
  1. . S ^GMPLINRT(1)=^GMPLCIEN(1)
  1. . S GMPLKFDA(125.11,""_$G(^GMPLCIEN(1))_",",.01)="@"
  1. . D FILE^DIE("K","GMPLKFDA","GMPLMSG")
  1. E S ^GMPLINRT(1)=""
  1. I GMPLFLAG="@" G SVCQT1
  1. S GMPLFDA(125.11,"+1,",.01)=GMPLCNME
  1. S GMPLFDA(125.11,"+1,",.02)=$$DT^XLFDT
  1. S GMPLFDA(125.11,"+1,",.03)=GMPLCLS
  1. D UPDATE^DIE("","GMPLFDA","^GMPLINRT","GMPLMSG")
  1. SVCQT1 I $D(GMPLMSG) D Q
  1. . S GMPLTXT(1)="Unable to "_$S(GMPLFLAG="@":"delete",1:"store")
  1. . S GMPLTXT(1)=GMPLTXT(1)_" category "_GMPLCNME_" and class "_GMPLCCLS_" in file #125.11."
  1. . S GMPLTXT(2)="Error "_GMPLMSG("DIERR",1)_": "_GMPLMSG("DIERR",1,"TEXT",1)
  1. . D EN^DDIOL(.GMPLTXT) S GMPLOK=0
  1. Q GMPLOK
  1. ;============================================
  1. SVPROB(GMPLREC,GMPLCNME,GMPLOK) ; Save category problems into subfile 125.11
  1. N GMPLDTXT,GMPLPSEQ,GMPLICD,GMPLSCTC,GMPLSCTD
  1. N GMPLLTRM,GMPLMSG,GMPLTXT,GMPLISTR,GMPLFDA
  1. I $L(GMPLREC,",")>5 D
  1. . N GMPLTPC,GMPLDPC,GMPLK
  1. . S GMPLTPC=$L(GMPLREC,","),GMPLDPC=GMPLTPC-4,GMPLDTXT=""
  1. . F GMPLK=2:1:(GMPLDPC+1) S GMPLDTXT=GMPLDTXT_$S(GMPLK>2:",",1:"")_$P(GMPLREC,",",GMPLK)
  1. . S GMPLPSEQ=$$STRIP^XLFSTR($P(GMPLREC,",",1)," "),GMPLDTXT=$$STRIP^XLFSTR(GMPLDTXT,"""")
  1. . S GMPLICD=$$STRIP^XLFSTR($P(GMPLREC,",",(GMPLDPC+2))," ")
  1. . S GMPLSCTC=$$STRIP^XLFSTR($$STRIP^XLFSTR($P(GMPLREC,",",(GMPLDPC+3)),"C")," ")
  1. . S GMPLSCTD=$$STRIP^XLFSTR($$STRIP^XLFSTR($P($P(GMPLREC,",",(GMPLDPC+4)),""_$C(13)_""),"D")," ")
  1. E D
  1. . S GMPLPSEQ=$$STRIP^XLFSTR($P(GMPLREC,",",1)," "),GMPLDTXT=$$STRIP^XLFSTR($P(GMPLREC,",",2),"""")
  1. . S GMPLICD=$$STRIP^XLFSTR($P(GMPLREC,",",3)," "),GMPLSCTC=$$STRIP^XLFSTR($$STRIP^XLFSTR($P(GMPLREC,",",4),"C")," ")
  1. . S GMPLSCTD=$$STRIP^XLFSTR($$STRIP^XLFSTR($P($P(GMPLREC,",",5),""_$C(13)_""),"D")," ")
  1. S GMPLLTRM=$$GETEXIEN^GMPLX(GMPLSCTC,GMPLSCTD)
  1. I GMPLDTXT["sct" S GMPLDTXT=$P(GMPLDTXT,"(")_"("_$$UP^XLFSTR($P($P(GMPLDTXT,"(",2)," "))_" "_$P($P(GMPLDTXT,"(",2)," ",2)
  1. I GMPLDTXT'["SCT" S GMPLDTXT=GMPLDTXT_" (SCT "_GMPLSCTC_")"
  1. I +GMPLLTRM<0 D Q
  1. . S GMPLTXT(1)="Unable to save "_GMPLDTXT
  1. . S GMPLTXT(2)="Error: "_$P(GMPLLTRM,U,2)
  1. . D EN^DDIOL(.GMPLTXT) S GMPLOK=0
  1. S GMPLISTR=$S(^GMPLCIEN(1)>0:"+2,"_^GMPLCIEN(1)_",",1:"+2,"_^GMPLINRT(1)_",")
  1. S GMPLFDA(125.111,GMPLISTR,.01)=GMPLLTRM
  1. S GMPLFDA(125.111,GMPLISTR,.02)=GMPLPSEQ
  1. S GMPLFDA(125.111,GMPLISTR,.03)=GMPLDTXT
  1. S GMPLFDA(125.111,GMPLISTR,.04)=GMPLICD
  1. S GMPLFDA(125.111,GMPLISTR,.05)=GMPLSCTC
  1. S GMPLFDA(125.111,GMPLISTR,.06)=GMPLSCTD
  1. D UPDATE^DIE("","GMPLFDA","","GMPLMSG")
  1. I $D(GMPLMSG) D
  1. . S GMPLTXT(1)="Unable to store problem: "_GMPLDTXT_" from category "_GMPLCNME_"."
  1. . S GMPLTXT(2)="Error "_GMPLMSG("DIERR",1)_": "_GMPLMSG("DIERR",1,"TEXT",1)
  1. . D EN^DDIOL(.GMPLTXT) S GMPLOK=0
  1. Q GMPLOK
  1. ;============================================
  1. UPDTCNT(GMPLNODE) ; Save/delete the list name & class
  1. ; Flag indicators: # - Add/edit list, @ - Delete list
  1. N GMPLLST,GMPLFDA,GMPLMSG,GMPLLNME,GMPLLCLS,GMPLCLS
  1. N GMPLSUC,GMPLTXT,GMPLIEN,GMPLINRT,GMPLFLAG
  1. S GMPLSUC=1
  1. S GMPLLST=^TMP($J,GMPLNODE,1,1)
  1. S GMPLFLAG=$P(GMPLLST,",",1)
  1. S GMPLLNME=$$UP^XLFSTR($P(GMPLLST,",",2))
  1. S GMPLLCLS=$$UP^XLFSTR($P(GMPLLST,",",3))
  1. S GMPLCLS=$S(GMPLLCLS="NATIONAL":"N",GMPLLCLS="LOCAL":"L",GMPLLCLS="VISN":"V",1:"")
  1. S GMPLIEN=+$$FIND1^DIC(125,"","K",GMPLLNME,"","","GMPLMSG")
  1. I GMPLIEN>0 D
  1. . S GMPLINRT(1)=GMPLIEN
  1. . S GMPLFDA(125,""_GMPLIEN_",",.01)="@"
  1. . D FILE^DIE("K","GMPLFDA","GMPLMSG")
  1. I GMPLFLAG="@" G UPQT
  1. S GMPLFDA(125,"+1,",.01)=GMPLLNME
  1. S GMPLFDA(125,"+1,",.02)=$$DT^XLFDT
  1. S GMPLFDA(125,"+1,",.04)=GMPLCLS
  1. D UPDATE^DIE("","GMPLFDA","GMPLINRT","GMPLMSG")
  1. UPQT I $D(GMPLMSG) D
  1. . S GMPLTXT(1)="Unable to "_$S(GMPLFLAG="@":"delete",1:"store")
  1. . S GMPLTXT(1)=GMPLTXT(1)_" list "_GMPLLNME_" and class "_GMPLLCLS_" in file #125."
  1. . S GMPLTXT(2)="Error: "_GMPLMSG("DIERR",1,"TEXT",1)
  1. . D EN^DDIOL(.GMPLTXT)
  1. . S GMPLSUC=0
  1. ;Reset the 125 0 node so holes are not left.
  1. I $D(^GMPL(125,0)) S $P(^GMPL(125,0),U,3)=0
  1. Q GMPLSUC
  1. ;============================================
  1. VALCAT(GMPLTMP,GMPLFLAG,GMPLIMPT,GMPLRNDE,GMPLABRT) ; Validate category info
  1. N GMPLCSEQ,GMPLCNME,GMPLSHDR,GMPLHSTR,GMPLSQST,GMPLNL
  1. S GMPLCSEQ=$P(GMPLTMP,",",2),GMPLCNME=$P(GMPLTMP,",",3)
  1. S GMPLSHDR=$P(GMPLTMP,",",4),GMPLHSTR="Subheader: "_GMPLSHDR
  1. S GMPLNL=$G(^TMP($J,GMPLRNDE))
  1. I '+$$VFLAG^GMPLINTR(GMPLFLAG) S GMPLABRT=1
  1. I '+$$VSEQ^GMPLINTR(GMPLCSEQ,"Category") S GMPLABRT=1
  1. E S GMPLSQST="Category Sequence: "_GMPLCSEQ
  1. I '+$$VNAME^GMPLINTR(GMPLCNME,GMPLIMPT,"Category") D
  1. . D EN^DDIOL(" For category sequence #"_GMPLCSEQ_".")
  1. . S GMPLABRT=1
  1. I 'GMPLABRT D
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)=""
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)="Category Name: "_GMPLCNME_$S(GMPLFLAG="@":" ***MARKED FOR DELETION!!!***",1:"")
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)=$$LJ^XLFSTR(GMPLHSTR,47)_$$LJ^XLFSTR(GMPLSQST,33)
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)=""
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)="Prob"_$J("SNOMED CT",10)_$J("SNOMED CT",21)
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)="Seq"_$J("Concept",9)_$J("Designation",25)_$J("ICD Code",18)_$J("SNOMED CT Description",42)
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)=$$REPEAT^XLFSTR("-",150)
  1. S ^TMP($J,GMPLRNDE)=GMPLNL
  1. Q GMPLABRT
  1. ;============================================
  1. VALCPROB(GMPLTMP,GMPLRNDE,GMPLABRT) ; Validate category problems
  1. N GMPLPSEQ,GMPLDTXT,GMPLICD,GMPLSCTC,GMPLSCTD,GMPLNL
  1. S GMPLNL=$G(^TMP($J,GMPLRNDE))
  1. I $L(GMPLTMP,",")>5 D
  1. . N GMPLTPC,GMPLDPC,GMPLK
  1. . S GMPLTPC=$L(GMPLTMP,","),GMPLDPC=GMPLTPC-4,GMPLDTXT=""
  1. . F GMPLK=2:1:(GMPLDPC+1) S GMPLDTXT=GMPLDTXT_$S(GMPLK>2:",",1:"")_$P(GMPLTMP,",",GMPLK)
  1. . S GMPLPSEQ=$$STRIP^XLFSTR($P(GMPLTMP,",",1)," "),GMPLDTXT=$$STRIP^XLFSTR(GMPLDTXT,"""")
  1. . S GMPLICD=$$STRIP^XLFSTR($P(GMPLTMP,",",(GMPLDPC+2))," ")
  1. . S GMPLSCTC=$$STRIP^XLFSTR($$STRIP^XLFSTR($P(GMPLTMP,",",(GMPLDPC+3)),"C")," ")
  1. . S GMPLSCTD=$$STRIP^XLFSTR($$STRIP^XLFSTR($P($P(GMPLTMP,",",(GMPLDPC+4)),""_$C(13)_""),"D")," ")
  1. E D
  1. . S GMPLPSEQ=$$STRIP^XLFSTR($P(GMPLTMP,",",1)," "),GMPLDTXT=$$STRIP^XLFSTR($P(GMPLTMP,",",2),"""")
  1. . S GMPLICD=$$STRIP^XLFSTR($P(GMPLTMP,",",3)," "),GMPLSCTC=$$STRIP^XLFSTR($$STRIP^XLFSTR($P(GMPLTMP,",",4),"C")," ")
  1. . S GMPLSCTD=$$STRIP^XLFSTR($$STRIP^XLFSTR($P($P(GMPLTMP,",",5),""_$C(13)_""),"D")," ")
  1. I GMPLDTXT["sct" S GMPLDTXT=$P(GMPLDTXT,"(")_"("_$$UP^XLFSTR($P($P(GMPLDTXT,"(",2)," "))_" "_$P($P(GMPLDTXT,"(",2)," ",2)
  1. I GMPLDTXT'["SCT" S GMPLDTXT=GMPLDTXT_" (SCT "_GMPLSCTC_")"
  1. I '+$$VICD^GMPLINTR(GMPLICD) S GMPLABRT=1
  1. I '+$$VSCTCODE^GMPLINTR(GMPLSCTC) S GMPLABRT=1 Q GMPLABRT
  1. I '+$$VSCTDSGN^GMPLINTR(GMPLSCTC,GMPLSCTD,$P(GMPLDTXT," (SCT")) S GMPLABRT=1
  1. I 'GMPLABRT D
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)=$$LJ^XLFSTR(GMPLPSEQ,5)_$$LJ^XLFSTR(GMPLSCTC,21)_$$LJ^XLFSTR(GMPLSCTD,21)_$$LJ^XLFSTR(GMPLICD,29)_$$LJ^XLFSTR(GMPLDTXT,80)
  1. S ^TMP($J,GMPLRNDE)=GMPLNL
  1. Q GMPLABRT
  1. ;============================================
  1. VALSLST(GMPLTMP,GMPLFLAG,GMPLIMPT,GMPLRNDE,GMPLABRT) ; Validate selection list & class
  1. N GMPLLNME,GMPLLCLS,GMPLCCLS,GMPLNL
  1. S GMPLLNME=$P(GMPLTMP,",",2),GMPLLCLS=$P(GMPLTMP,",",3)
  1. S GMPLCCLS=$P(GMPLTMP,",",4),GMPLNL=0
  1. K ^TMP($J,GMPLRNDE)
  1. I GMPLFLAG="@" S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)="***MARKED FOR DELETION!!!***"
  1. I '+$$VFLAG^GMPLINTR(GMPLFLAG) S GMPLABRT=1
  1. I '+$$VNAME^GMPLINTR(GMPLLNME,GMPLIMPT,"List") S GMPLABRT=1
  1. I '+$$VCLASS^GMPLINTR(GMPLLCLS,GMPLIMPT,"List") S GMPLABRT=1
  1. I '+$$VCLASS^GMPLINTR(GMPLCCLS,GMPLIMPT,"Category") S GMPLABRT=1
  1. I 'GMPLABRT D
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)="Selection List Name: "_GMPLLNME
  1. . S GMPLNL=GMPLNL+1,^TMP($J,GMPLRNDE,GMPLNL)="List Class: "_GMPLLCLS_$J("Category Class: ",34)_GMPLCCLS
  1. S ^TMP($J,GMPLRNDE)=GMPLNL
  1. Q GMPLABRT