Data Matrix – rad sa kliničkim podacima. Šta su bar kodovi

13. jula 2017

×

Dana 11. jula, Data MATRIX tim ugostio je Biotech utorak u Bostonu. Oko dvije stotine gostiju došlo je da razmijene najnovije vijesti iz industrije i upoznaju se s novim partnerima.

Data MATRIX se zahvaljuje svim učesnicima koji su se ovog dana mogli pridružiti našem timu. Nadamo se da su mnogi od njih otkrili nove poslovne prilike. “Bio je to sjajan sastanak, bilo je sjajno upoznati predstavnike iz toliko kompanija. Komunikacija i interakcija između gostiju bila je odlična! Ovo je bio najbolji Biotech utorak na kojem sam ikada prisustvovao,” rekao je jedan gost.

Ostanite povezani i pridružite se sljedećem Data MATRIX sastanku!

07. juna 2017

Budućnost kliničkih istraživanja: Data MATRIX sastanak

×

2. juna u DI Telegraphu (Moskva, Tverska ulica, 7) održan je sastanak stručnjaka farmaceutske industrije „Budućnost kliničkih istraživanja: ljudi i tehnologije“. U njemu je učestvovalo više od 100 ljudi.

Prvi dio događaja bio je posvećen diskusiji softverska rješenja za kliničke studije. Izvršni direktor Data MATRIX-a Ivan Dobromyslov dao je pregled ovih proizvoda i govorio o tome kako moderni regulatorni i upravljački zahtjevi utiču na softver, pregledao karakteristike istraživanja usmjerenog na pacijenta. Također je detaljno opisao nove istraživačke mogućnosti korištenja mobilnih uređaja i specifičnosti rada na projektima sa velikim bazama podataka.

Christina Leus, izvršna direktorica Data MATRIX, predstavila je upravljanje projektima u MATRIX Cloud sistemu u svim fazama: kreiranje projekta, dodjeljivanje tima, uključujući istraživačke centre, kreiranje i implementacija elektronskog CRF-a, održavanje praćenog proizvoda u modulu farmakovigilance, rad sa budžetom, planiranjem projektnih zadataka i praćenjem njihove realizacije Dana 31. maja 2017. godine, Data MATRIX tim je organizovao sastanak sa kolegama iz industrije u pivari u belgijskoj opštini Gembloux.

Predstavnici Data MATRIX-a govorili su o uslugama za prikupljanje i obradu podataka o kliničkim ispitivanjima koristeći samorazvijenu, potpuno validiranu MATRIX EDC/IWRS aplikaciju. Data MATRIX radi sa studijama faze I-IV i programima opservacije, pomažući klijentima da izvrše kvalitetnu obradu podataka, randomizaciju pacijenata, statističku analizu i još mnogo toga.

Na kraju prezentacije Data MATRIX, predstavnici evropskih biotehnoloških kompanija pozvani su u obilazak pivare, nakon čega su gosti događaja mogli da razgovaraju o stručnim temama uz degustaciju domaćeg piva i sira.

Data MATRIX se zahvaljuje svim gostima skupa i nada se da ćemo ih vidjeti u bliskoj budućnosti.

Predstavlja crno-bijele elemente ili elemente nekoliko različitih stupnjeva svjetline, obično u obliku kvadrata, smještenih u pravokutnu ili kvadratnu grupu. Matrični bar kod je dizajniran za kodiranje teksta ili drugih vrsta podataka. Najčešće se u industriji i trgovini koriste bitne matrice koje kodiraju od nekoliko bajtova do 2 kilobajta podataka. Ako želite, možete ispisati matrice kapaciteta stotine kilobajta na štampaču, a zatim ih očitati s prilično visokom preciznošću pomoću kamera čije matrice sadrže milione piksela. Prototip bar kodova u obliku matrice su bušene kartice.

DataMatrix tehnička specifikacija

DataMatrix simboli se formiraju od modula koji se nalaze unutar obrasca pretraživanja. Oni mogu šifrirati do 3116 ASCII kodova tablice (uključujući suvišne informacije). Simbol se sastoji od područja podataka koja sadrže module u obliku periodičnog niza. Svako područje podataka ograničeno je uzorkom pretraživanja i okruženo je sa sve četiri strane granicama slobodnih zona. (Napomena: moduli mogu biti okrugli ili kvadratni; specifičan oblik nije određen standardom).

Data Matrix ECC 200

ECC 200 je najnovija verzija DataMatrix, koji koristi Reed-Solomon kodove za sprečavanje grešaka i vraćanje izbrisanih informacija. ECC 200 omogućava da se povrati čitav niz kodiranih informacija kada simbol sadrži 30% oštećenja, pod pretpostavkom da je matrica još uvijek točno postavljena. DataMatrix ima stopu greške manju od 1 na 10 miliona skeniranih znakova.

Simboli imaju paran broj redova i paran broj kolona. Većina simbola je kvadratne veličine od 10x10 do 144x144 modula. Međutim, neki simboli su pravokutni i imaju veličinu od 8x18 do 16x48 jedinica (samo parne vrijednosti). Svi znakovi koji podržavaju ispravljanje grešaka ECC 200 mogu se prepoznati po tome što je jedinica u gornjem desnom uglu iste boje kao pozadina.

Može se odnositi na: Matrica (matematika) Pravougaoni niz elemenata Matrica podataka (računar) Kodirani bar kod. Skup podataka Zbirka podataka u obliku tabele. Matrica podataka (multivarijantna statistika) Matematička matrica podataka čiji redovi predstavljaju... ... Wikipedia

Data Matrix - Primjer Data Matrix koda, koji kodira tekst: Wikipedia, besplatna enciklopedija Čitanje podataka … Wikipedia

Data Matrix

Data Matrix - 3.8 Data Matrix: Dvodimenzionalna matrična simbologija za ispravljanje grešaka koja kodira različite skupove znakova, uključujući skup numeričkih i alfanumeričkih znakova podataka, sve znakove ISO/IEC 646 (ASCII)1) i specijalni setovi znakovi. 1) Link... ... Rječnik-priručnik pojmova normativne i tehničke dokumentacije

data matrix - /deɪtə ˈmeɪtrɪks/ (recimo daytuh maytriks) imenica (množina matrica podataka ili matrica podataka /deɪtə ˈmeɪtrəsiz/ (recimo daytuh maytruhseez)) pravougaoni niz podataka, slika, upotreba podataka, itd. Australijski engleski rječnik

- ... Wikipedia

Data matrix (računar) - Data Matrix kod je dvodimenzionalni matrični bar kod koji se sastoji od crno-bijelih kvadratnih modula raspoređenih u kvadratnom ili pravokutnom uzorku. Informacije koje treba kodirati mogu biti tekstualni ili neobrađeni podaci. Uobičajena veličina podataka je od nekoliko bajtova naviše... ... Wikipedia

Data Matrix Code - DataMatrix Code als Teil von Stampit Mit dem dem zweidimensionalen Data Matrix Code (2D Code) kann im Vergleich zu eindimenzionalni bar kodovi (1D Code) die Informationsdichte pro Fläche deutlich erhöht werden. Entwickelt wurde der Data Matrix Code in… … Deutsch Wikipedia

Matrica podataka (multivarijatna statistika) - U multivarijantnoj statistici, matrica podataka je matematička matrica podataka čiji redovi predstavljaju različito ponavljanje eksperimenta, a čiji stupci predstavljaju različite vrste podataka (recimo, rezultate određene sonde). Na primjer,... ... Wikipedia

Matrični kod - Matrični kod se može odnositi na: dvodimenzionalni bar kod (za razliku od linearnih i naslaganih simbologija), kao što je npr. Data Matrix. Logo franšize The Matrix. Pogledajte Matrix digitalna kiša. Ova višeznačna odrednica navodi članke povezane sa… … Wikipedijom

Knjige
  • Analiza uzroka kvarova alatnih mašina korištenjem matrične metode, Chitrakant Tiger, A.B. Andhare i Ashwin Patil. Ova knjiga je zasnovana na proučavanju takvih neuspjeha da se identifikuju kritični podsistemi ovih alatnih mašina. Analiza kvarova alatnih mašina izvršena je korišćenjem teorije grafova-matrice…

Takozvani Bar kodovi se koriste u cijelom svijetu već duže vrijeme, da, to su slike sa prugama različitih dužina i debljina koje se lijepe na robu u najbližem supermarketu ^_^ Uglavnom postoje različite Bar kodova, ali za nas će najzanimljiviji biti takozvani QR kod (iz Quick Response), koji se najviše koristi na internetu. Ovo dvodimenzionalni kod, za razliku od pruga na robi, otuda je njegova vrlo važna osobina: informacioni kapacitet. Općenito, neću citirati Wikipediju, oni koji su zainteresirani mogu je sami pročitati. Ima dovoljno veliki broj metode za predstavljanje QR kodova na webu, najčešće se baziraju na generiranju slika na strani servera. Međutim, moji čitaoci znaju koliko ne volim takve odluke.

Ukratko o bar kodovimaQR kodu

Postoje 4 glavne klase predstavljanja informacija putem QR koda, koje se razlikuju po vrsti pohranjenih podataka i maksimalnom obimu:

  • Samo digitalne informacije - do 7089 cifara
  • Alfanumeričke informacije - do 4296 karaktera
  • Binarni podaci (8-bitni bajtovi) - do 2953 bajtova
  • Kanji/Kana - do 1817 znakova

QR kod ima sljedeće razine ispravljanja grešaka, koje karakterizira količina informacija koje treba vratiti (od najveće do najmanje):

  • H(visok) - 30%
  • Q(uality) - 25%
  • M(edium) - 15%
  • L(nizak) - 7%

Algoritam za ispravljanje grešaka baziran je na Reed-Solomon kodu.

Osim toga, postoji nekoliko verzija prezentacije podataka (1-40), koje se razlikuju maksimalna jačina zvuka pohranjene informacije i, shodno tome, veličina matrice.

DataMatrix kod

Ovo je još jedna vrsta dvodimenzionalnog koda, manje uobičajena na Internetu, ali kompaktnija. Kod također omogućava pohranjivanje informacija za oporavak do 30%. Za razliku od QR-a, područje aplikacije ne mora biti kvadratno.

Pa počnimo

Naravno, nisam želeo da pišem implementaciju algoritma za generisanje koda, pa sam nakon guglanja pronašao potpuno odgovarajuću implementaciju kodiranja u JavaScript-u od Kazuhiko Arase http://www.d-project.com/qrcode/index .html. Ovdje je implementirana samo jedna vrsta kodiranja: 8-bitni bajtovi, odnosno svi podaci se rastavljaju u bajtove onako kako jesu, au istom obliku ih čitaju skeneri. Na ovaj način možemo kodirati bilo koji niz u Unicode-u i svaki razuman skener bi ga trebao ispravno dekodirati. Osim toga, u ovoj implementaciji standard je podržan do verzije 10 uključujući.

Malo kasnije naišao sam na jQuery dodatak baziran na ovom razvoju hrabrog japanskog https://github.com/jeromeetienne/jquery-qrcode. Ali prezentacija u njemu implementirana je isključivo preko Canvas-a, a ozbiljni programeri su obavezni da pišu cross-browser gdje god je to moguće.

Sa DataMatrix kodovima sve je bilo komplikovanije, sve dok nisam naišao na jQuery dodatak BarCode http://barcode-coder.com/en/barcode-jquery-plugin-201.html, koji je zapravo sadržavao DataMatrix koder od HOUREZ Jonathana. Međutim, sam dodatak mi se činio previše monstruozan i težak za proširenje da bih ga nekako iskoristio.

Implementacija

Stoga je odlučeno da se implementiraju različiti motori za renderiranje bar kodova, u zavisnosti od podrške na strani klijenta za određene mogućnosti, kao i podrške razne vrste koderi:

;(function($)( var $$ = $.barcode = ( defs: ( // Zadane opcije type:false // Tip koda), clas: "bar-code", // CSS class conv: function(s) ( // Funkcija konverzije nizova vraća unescape(encodeURIComponent(s)); ), type: (), // Tipovi koda motora: () // Rendereri), T = function(t)( // Validator tipa koda if( ! $$.type[t])( for(var i u $$.type)( t = i; break; ) ) return t), R = Math.floor // Funkcija zaokruživanja $.fn.bar_code = function(; opts)( // Implementacija dodatka return this.each(function())( var self = $(ovo); if(!self.hasClass($$.clas))(self.addClass($$.clas); / / Postavljanje klase ) var opt = $.extend(true, ( // Inicijaliziranje opcija širina: self.innerWidth(), visina: self.innerHeight(), tekst: self.text() ), $$.defs, opts ), gen, inst, val = $$.conv(opt.text) // Konverzija podataka opt.type = T(opt.type) // $.type))(); / Pronalaženje enkodera return ) if(!(inst = gene.init(opt, val)))( // Inicijalizacija instance kodera return;

) var cnt = gene.read.call(inst), // Dimenzije matrice est = [ // Dimenzije elementa matrice R(opt.width/cnt), R(opt.height/cnt) ], p = ( // Prilagodba padding w:opt.width-est*cnt, h:opt.height-est*cnt );

if(p.w > 0,01 || p.h > 0,01)( var cst = ( // širina dopuna kontejnera:opt.width-p.w, visina:opt.height-p.h, paddingLeft:R(0,5*p.w), paddingTop:R(0,5 *p.h) ); cst.paddingRight=p.w-cst.paddingLeft; ($$.engine[n].check())( $$.engine[n].render.call(self, function(col, row)( // Ovaj lambda u suštini ispituje stanje gena za vraćanje matričnog elementa. read (inst, col, row);

);

$$.engine.canvas = ( check: function())( // Provjera dostupnosti probaj( return !!window.CanvasRenderingContext2D && !!document.createElement("canvas"); )catch(e)( return false; ) ) , render: function(chk, cnt, est)( // Renderiranje // Prvo moramo dobiti boje tako da slika izgleda u skladu sa CSS-om var st = this.append("").find("span" ), c = st.eq(0).css("backgroundColor"), d = st.eq(1).css("backgroundColor"), w = est.width, h = est.height(); inicijalizirati Canvas var can = this.append("").find("canvas").get(0), ctx = can.getContext("2d"); I obojite matricu za (var y = 0; y< cnt; y++){ for(var x = 0; x < cnt; x++){ ctx.fillStyle = chk(x, y) ? d: c; ctx.fillRect(x*est, y*est, est, est); } } } };

Ako Canvas nije dostupan, glupo ćemo generirati matricu sa HTML elementima, sporije je, ali radi:

$$.engine.html = ( provjeri: function())( vrati true; ), render: function(chk, cnt, est)( var tab = ""; for(var y = 0; y< cnt; y++){ for(var x = 0; x < cnt; x++){ tab += ""; } } this.append(tab).find("span").css({ width:est, height:est }); } };

Nakon testiranja u IE, kao i obično, pokazalo se da tamo uopće ne radi kako je predviđeno, pa ćemo u nedostatku želje za razumijevanjem napisati mašinu tablice:

$$.engine.table = ( provjeri: function())( vrati true; //$.browser.msie; ), render: function(chk, cnt, est)( var tab = ""; for(var y = 0 ;y< cnt; y++){ tab += ""; for(var x = 0; x< cnt; x++){ tab += ""; ) tab += ""; ) this.append("

"+tab+"
").find("table").css(( width:est*cnt, height:est*cnt )).find("td").css(( width:est, height:est )); ) );

Kao što vidite, sve je ispalo prilično trivijalno. Sve što ostaje je da napišete stilski list:

Bar-code( /* Kontejner */ overflow: skriven; margina: 10px; padding: 0; širina: 100px; visina: 100px; pozadina: #fff; /* Boja pozadine. Ako imate punu ispunu, ne možete postaviti ovo svojstvo */ ) .bar-code *( /* Svi elementi po defaultu */ display: inline-block; float: lijevo; granica: 0; padding: 0; margina: 0; border-collapse: kolaps; ) .bar - code .dark( /* Zatamnjeni elementi */ pozadina: #000; /* Možete postaviti bilo koju boju, sve dok se dobro razlikuje od pozadine, eksperimentirajte */ )

Ovdje resetujem neka svojstva za svaki slučaj, ne morate ovo raditi ako sve ionako izgleda odlično.

Koderi

Kao što je gore spomenuto, implementiramo generiranje QR kodova pomoću enkodera iz Kazuhiko Arase, a primjera radi dodaćemo i DataMatrix generator kodova, ovo je alternativa QR kodovima, ali manje uobičajeno na Internetu i podržano od manje skenera. U skripti ćemo provjeriti da li je enkoder dostupan i tek onda inicijalizirati motor.

Kazuhikov enkoder zahtijeva obaveznu naznaku tipa koda, odnosno broj od 0 do 10, koji zajedno sa nivoom ispravljanja greške čini verziju koda, međutim različite vrste kodovi mogu pohraniti različite količine informacija, pa sam odlučio implementirati automatski odabir tipa koji odgovara podacima ako tip nije specificiran. Dakle, QR koder će izgledati ovako:

If(window.QRCode)( $$.defs.QR = ( // Nivo vrijednosti zadanih opcija: "H", // Tip zadanog nivoa: 0 // Zadani tip // 1..10 // moja ekstenzija: 0 ili null - autoselection var QRAutoType = function(val, errorCorrectLevel)( // Automatski odabir); pogodan tip for(var broj tipa = 1; broj tipa