How to Make a List Manager Application
34 List Manager April 2012
Developer's Guide
.S X=$$SETFLD^VALM1(VALMCNTI,"","NUMBER")
.S X=$$SETFLD^VALM1($P(VALMX,U),X,"NAME")
.S X=$$SETFLD^VALM1($P(VALMX,U,2),X,"TEXT") K Z S
$P(Z,$E(VALMCNTI),240)=""
.S VALMCNT=VALMCNT+1
.D SET^VALM10(VALMCNT,$E(X_Z,1,240),VALMCNTI) ; set text
.S ^TMP("VALMZIDX",$J,VALMCNTI)=VALMCNT_U_VALMIFN
.D:'(VALMCNT#9) FLDCTRL^VALM10(VALMCNT) ; defaults for all fields
.D FLDCTRL^VALM10(VALMCNT,"NUMBER") ; default for 1 field
.D:'(VALMCNT#5) FLDCTRL^VALM10(VALMCNT,"NAME",IOUON,IOUOFF) ; adhoc
D NUL:'VALMCNT
INITQ Q
;
HDR ; -- demo header
N VALMX
S VALMX=$G(^DIC(9.4,VALMPKG,0)),X=" Package:"_$P(VALMX,U)
S VALMHDR(1)=$$SETSTR^VALM1("Prefix:"_$P(VALMX,U,2),X,63,15)
S VALMHDR(2)="Description: "_$E($P(VALMX,U,3),1,65)
Q
;
NUL ; -- set null message
I 'VALMCNT D
.F X=" "," No protocols to list." S VALMCNT=VALMCNT+1 D
SET^VALM10(VALMCNT,X)
.S ^TMP("VALMZIDX",$J,1)=1,^(2)=2
Q
;
FNL ; -- clean up
K DIE,DIC,DR,DA,DE,DQ,VALMY,VALMPKG,^TMP("VALMZIDX",$J)
D CLEAN^VALM10
Q
;
EXP ; -- expand action
D FULL^VALM1
N VALMI,VALMAT,VALMY
D EN^VALM2(XQORNOD(0),"O") S VALMI=0
F S VALMI=$O(VALMY(VALMI)) Q:'VALMI D
.S VALMAT=$G(^TMP("VALMZIDX",$J,VALMI))
.W !!,@VALMAR@(+VALMAT,0),!
.S DA=+$P(VALMAT,U,2),DIC="^ORD(101,",DR="0"
D EN^DIQ,PAUSE^VALM1
S VALMBCK="R"
Q
;
EDIT ; -- edit action
N VALMA,VALMP,VALMI,VALMAT,VALMY
D EN^VALM2(XQORNOD(0),"O") S VALMI=0 ; allow the user to "O"ptionally
answer
F S VALMI=$O(VALMY(VALMI)) Q:'VALMI D
.D SELECT^VALM10(VALMI,1) ; -- 'select' line
.S VALMAT=$G(^TMP("VALMZIDX",$J,VALMI))
.W !!,@VALMAR@(+VALMAT,0)
.S DA=+$P(VALMAT,U,2),VALMP=$G(^ORD(101,DA,0)),DIE=19,DR="1" D ^DIE K
DIE,DR
.S VALMA=$G(^ORD(101,DA,0))
.I $P(VALMP,U,2)'=$P(VALMA,U,2) D UPD($P(VALMA,U,2),"TEXT",.VALMAT)
.D SELECT^VALM10(VALMI,0) ; -- 'de-select' line